mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
Removed database status in favor of much cleaner code
Implemented (but deactivated) anti corruption mechanism WIP detect changes and save them if opening another database
This commit is contained in:
@@ -16,20 +16,20 @@ namespace ModernKeePassApp.Test
|
||||
[TestMethod]
|
||||
public void TestCreate()
|
||||
{
|
||||
Assert.AreEqual((int) DatabaseService.DatabaseStatus.Closed, _database.Status);
|
||||
Assert.IsTrue(_database.IsClosed);
|
||||
_database.DatabaseFile = ApplicationData.Current.TemporaryFolder.CreateFileAsync("NewDatabase.kdbx").GetAwaiter().GetResult();
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Opening, _database.Status);
|
||||
Assert.IsTrue(_database.IsFileOpen);
|
||||
OpenOrCreateDatabase(true);
|
||||
_database.Close();
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Closed, _database.Status);
|
||||
_database.Close().GetAwaiter().GetResult();
|
||||
Assert.IsTrue(_database.IsClosed);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestOpen()
|
||||
{
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Closed, _database.Status);
|
||||
Assert.IsTrue(_database.IsClosed);
|
||||
_database.DatabaseFile = Package.Current.InstalledLocation.GetFileAsync(@"Data\TestDatabase.kdbx").GetAwaiter().GetResult();
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Opening, _database.Status);
|
||||
Assert.IsTrue(_database.IsFileOpen);
|
||||
OpenOrCreateDatabase(false);
|
||||
}
|
||||
|
||||
@@ -38,23 +38,23 @@ namespace ModernKeePassApp.Test
|
||||
{
|
||||
TestOpen();
|
||||
_database.Save(ApplicationData.Current.TemporaryFolder.CreateFileAsync("SaveDatabase.kdbx").GetAwaiter().GetResult());
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Opened, _database.Status);
|
||||
_database.Close();
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Closed, _database.Status);
|
||||
Assert.IsTrue(_database.IsOpen);
|
||||
_database.Close().GetAwaiter().GetResult();
|
||||
Assert.IsTrue(_database.IsClosed);
|
||||
TestOpen();
|
||||
}
|
||||
|
||||
private void OpenOrCreateDatabase(bool createNew)
|
||||
{
|
||||
_database.Open(null, createNew);
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.NoCompositeKey, _database.Status);
|
||||
Assert.ThrowsException<ArgumentNullException>(
|
||||
() => _database.Open(null, createNew).GetAwaiter().GetResult());
|
||||
var compositeKey = new CompositeKeyVm(_database, new ResourceServiceMock())
|
||||
{
|
||||
HasPassword = true,
|
||||
Password = "test"
|
||||
};
|
||||
compositeKey.OpenDatabase(createNew).GetAwaiter().GetResult();
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Opened, _database.Status);
|
||||
Assert.IsTrue(_database.IsOpen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using ModernKeePass.Interfaces;
|
||||
using ModernKeePass.ViewModels;
|
||||
using ModernKeePassLib;
|
||||
@@ -10,6 +11,11 @@ namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
public class DatabaseServiceMock : IDatabase
|
||||
{
|
||||
private bool _isOpen;
|
||||
private bool _isFileOpen;
|
||||
private bool _isClosed;
|
||||
|
||||
|
||||
public PwCompressionAlgorithm CompressionAlgorithm { get; set; }
|
||||
|
||||
public StorageFile DatabaseFile { get; set; }
|
||||
@@ -18,6 +24,21 @@ namespace ModernKeePassApp.Test.Mock
|
||||
|
||||
public KdfParameters KeyDerivation { get; set; }
|
||||
|
||||
public bool IsOpen
|
||||
{
|
||||
get { return _isOpen; }
|
||||
}
|
||||
|
||||
public bool IsFileOpen
|
||||
{
|
||||
get { return _isFileOpen; }
|
||||
}
|
||||
|
||||
public bool IsClosed
|
||||
{
|
||||
get { return _isClosed; }
|
||||
}
|
||||
|
||||
public string Name => "MockDatabase";
|
||||
|
||||
public GroupVm RecycleBin { get; set; }
|
||||
@@ -25,17 +46,19 @@ namespace ModernKeePassApp.Test.Mock
|
||||
public bool RecycleBinEnabled { get; set; }
|
||||
|
||||
public GroupVm RootGroup { get; set; }
|
||||
|
||||
public int Status { get; set; }
|
||||
|
||||
|
||||
public void AddDeletedItem(PwUuid id)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Close()
|
||||
|
||||
public Task Close()
|
||||
{
|
||||
Status = 0;
|
||||
return Task.Run(() =>
|
||||
{
|
||||
_isClosed = true;
|
||||
_isOpen = false;
|
||||
});
|
||||
}
|
||||
|
||||
public void CreateRecycleBin()
|
||||
@@ -43,9 +66,13 @@ namespace ModernKeePassApp.Test.Mock
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Open(CompositeKey key, bool createNew)
|
||||
public Task Open(CompositeKey key, bool createNew)
|
||||
{
|
||||
Status = 2;
|
||||
return Task.Run(() =>
|
||||
{
|
||||
_isOpen = true;
|
||||
_isClosed = false;
|
||||
});
|
||||
}
|
||||
|
||||
public void Save()
|
||||
@@ -57,7 +84,7 @@ namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
||||
public void UpdateCompositeKey(CompositeKey key)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
Reference in New Issue
Block a user