mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
Changed VMs references to database singleton
Added some unit tests (WIP)
This commit is contained in:
@@ -4,7 +4,6 @@ using Windows.Storage;
|
||||
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
|
||||
using ModernKeePass.Common;
|
||||
using ModernKeePass.ViewModels;
|
||||
using ModernKeePassLib.Keys;
|
||||
|
||||
namespace ModernKeePassApp.Test
|
||||
{
|
||||
@@ -16,20 +15,20 @@ namespace ModernKeePassApp.Test
|
||||
[TestMethod]
|
||||
public void TestCreate()
|
||||
{
|
||||
Assert.AreEqual(_database.Status, (int) DatabaseHelper.DatabaseStatus.Closed);
|
||||
Assert.AreEqual((int) DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
||||
_database.DatabaseFile = ApplicationData.Current.TemporaryFolder.CreateFileAsync("NewDatabase.kdbx").GetAwaiter().GetResult();
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.Opening);
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Opening, _database.Status);
|
||||
OpenOrCreateDatabase(true);
|
||||
_database.Close();
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.Closed);
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestOpen()
|
||||
{
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.Closed);
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
||||
_database.DatabaseFile = Package.Current.InstalledLocation.GetFileAsync(@"Databases\TestDatabase.kdbx").GetAwaiter().GetResult();
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.Opening);
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Opening, _database.Status);
|
||||
OpenOrCreateDatabase(false);
|
||||
}
|
||||
|
||||
@@ -39,26 +38,21 @@ namespace ModernKeePassApp.Test
|
||||
TestOpen();
|
||||
Assert.IsTrue(_database.Save(ApplicationData.Current.TemporaryFolder.CreateFileAsync("SaveDatabase.kdbx").GetAwaiter().GetResult()));
|
||||
_database.Close();
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.Closed);
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
||||
TestOpen();
|
||||
}
|
||||
|
||||
private void OpenOrCreateDatabase(bool createNew)
|
||||
{
|
||||
_database.Open(null, createNew);
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.NoCompositeKey);
|
||||
var compositeKey = new CompositeKey();
|
||||
if (!createNew)
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.NoCompositeKey, _database.Status);
|
||||
var compositeKey = new CompositeKeyVm(_database)
|
||||
{
|
||||
_database.Open(compositeKey);
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.CompositeKeyError);
|
||||
}
|
||||
compositeKey.AddUserKey(new KcpPassword("test"));
|
||||
|
||||
_database.Open(compositeKey, createNew);
|
||||
/*var compositeKey = new CompositeKeyVm(_database);
|
||||
compositeKey.OpenDatabase(createNew);*/
|
||||
Assert.AreEqual(_database.Status, (int)DatabaseHelper.DatabaseStatus.Opened);
|
||||
HasPassword = true,
|
||||
Password = "test"
|
||||
};
|
||||
compositeKey.OpenDatabase(createNew);
|
||||
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Opened, _database.Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
66
ModernKeePassApp.Test/Mock/DatabaseHelperMock.cs
Normal file
66
ModernKeePassApp.Test/Mock/DatabaseHelperMock.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using ModernKeePass.Interfaces;
|
||||
using ModernKeePass.ViewModels;
|
||||
using ModernKeePassLib;
|
||||
using ModernKeePassLib.Cryptography.KeyDerivation;
|
||||
using ModernKeePassLib.Keys;
|
||||
using Windows.Storage;
|
||||
|
||||
namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
public class DatabaseHelperMock : IDatabase
|
||||
{
|
||||
public PwCompressionAlgorithm CompressionAlgorithm { get; set; }
|
||||
|
||||
public StorageFile DatabaseFile { get; set; }
|
||||
|
||||
public PwUuid DataCipher { get; set; }
|
||||
|
||||
public KdfParameters KeyDerivation { get; set; }
|
||||
|
||||
public string Name => "MockDatabase";
|
||||
|
||||
public GroupVm RecycleBin { get; set; }
|
||||
|
||||
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()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void CreateRecycleBin()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Open(CompositeKey key, bool createNew)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool Save()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool Save(StorageFile file)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void UpdateCompositeKey(CompositeKey key)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@@ -118,7 +118,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DatabaseTests.cs" />
|
||||
<Compile Include="Mock\DatabaseHelperMock.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ViewModelsTests.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="Package.appxmanifest">
|
||||
|
40
ModernKeePassApp.Test/ViewModelsTests.cs
Normal file
40
ModernKeePassApp.Test/ViewModelsTests.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using System.Linq;
|
||||
using Windows.ApplicationModel;
|
||||
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
|
||||
using ModernKeePass.ViewModels;
|
||||
using ModernKeePassApp.Test.Mock;
|
||||
|
||||
namespace ModernKeePassApp.Test
|
||||
{
|
||||
[TestClass]
|
||||
public class ViewModelsTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void TestAboutVm()
|
||||
{
|
||||
var aboutVm = new AboutVm(Package.Current);
|
||||
Assert.AreEqual("1.0", aboutVm.Version);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestMainVm()
|
||||
{
|
||||
var database = new DatabaseHelperMock();
|
||||
var mainVm = new MainVm(null, null, database);
|
||||
Assert.AreEqual(1, mainVm.MainMenuItems.Count());
|
||||
var firstGroup = mainVm.MainMenuItems.FirstOrDefault();
|
||||
Assert.AreEqual(5, firstGroup.Count());
|
||||
|
||||
database.Status = 1;
|
||||
mainVm = new MainVm(null, null, database);
|
||||
Assert.IsNotNull(mainVm.SelectedItem);
|
||||
Assert.AreEqual("Open", ((MainMenuItemVm)mainVm.SelectedItem).Title);
|
||||
|
||||
database.Status = 2;
|
||||
mainVm = new MainVm(null, null, database);
|
||||
Assert.IsNotNull(mainVm.SelectedItem);
|
||||
Assert.AreEqual(2, mainVm.MainMenuItems.Count());
|
||||
Assert.AreEqual("Save", ((MainMenuItemVm)mainVm.SelectedItem).Title);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user