mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
Created a Settings Service
Created a Recent Service Created a Resources Service Code refactor Updated tests
This commit is contained in:
@@ -4,13 +4,14 @@ using Windows.Storage;
|
||||
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
|
||||
using ModernKeePass.Services;
|
||||
using ModernKeePass.ViewModels;
|
||||
using ModernKeePassApp.Test.Mock;
|
||||
|
||||
namespace ModernKeePassApp.Test
|
||||
{
|
||||
[TestClass]
|
||||
public class DatabaseTests
|
||||
{
|
||||
private readonly DatabaseService _database = new DatabaseService();
|
||||
private readonly DatabaseService _database = new DatabaseService(new SettingsServiceMock());
|
||||
|
||||
[TestMethod]
|
||||
public void TestCreate()
|
||||
@@ -47,12 +48,12 @@ namespace ModernKeePassApp.Test
|
||||
{
|
||||
_database.Open(null, createNew);
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.NoCompositeKey, _database.Status);
|
||||
var compositeKey = new CompositeKeyVm(_database)
|
||||
var compositeKey = new CompositeKeyVm(_database, new ResourceServiceMock())
|
||||
{
|
||||
HasPassword = true,
|
||||
Password = "test"
|
||||
};
|
||||
compositeKey.OpenDatabase(createNew);
|
||||
compositeKey.OpenDatabase(createNew).GetAwaiter().GetResult();
|
||||
Assert.AreEqual((int)DatabaseService.DatabaseStatus.Opened, _database.Status);
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ using Windows.Storage;
|
||||
|
||||
namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
public class DatabaseHelperMock : IDatabase
|
||||
public class DatabaseServiceMock : IDatabase
|
||||
{
|
||||
public PwCompressionAlgorithm CompressionAlgorithm { get; set; }
|
||||
|
28
ModernKeePassApp.Test/Mock/RecentServiceMock.cs
Normal file
28
ModernKeePassApp.Test/Mock/RecentServiceMock.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Threading.Tasks;
|
||||
using ModernKeePass.Interfaces;
|
||||
using Windows.Storage;
|
||||
|
||||
namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
class RecentServiceMock : IRecent
|
||||
{
|
||||
public int EntryCount => 0;
|
||||
|
||||
public void Add(IStorageItem file, string metadata)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public ObservableCollection<IRecentItem> GetAllFiles(bool removeIfNonExistant = true)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public Task<IStorageItem> GetFileAsync(string token)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
13
ModernKeePassApp.Test/Mock/ResourceServiceMock.cs
Normal file
13
ModernKeePassApp.Test/Mock/ResourceServiceMock.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using ModernKeePass.Interfaces;
|
||||
|
||||
namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
class ResourceServiceMock : IResource
|
||||
{
|
||||
public string GetResourceValue(string key)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
18
ModernKeePassApp.Test/Mock/SettingsServiceMock.cs
Normal file
18
ModernKeePassApp.Test/Mock/SettingsServiceMock.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using ModernKeePass.Interfaces;
|
||||
|
||||
namespace ModernKeePassApp.Test.Mock
|
||||
{
|
||||
public class SettingsServiceMock : ISettings
|
||||
{
|
||||
public T GetSetting<T>(string property)
|
||||
{
|
||||
return default(T);
|
||||
}
|
||||
|
||||
public void PutSetting<T>(string property, T value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@@ -120,7 +120,10 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DatabaseTests.cs" />
|
||||
<Compile Include="Mock\DatabaseHelperMock.cs" />
|
||||
<Compile Include="Mock\DatabaseServiceMock.cs" />
|
||||
<Compile Include="Mock\RecentServiceMock.cs" />
|
||||
<Compile Include="Mock\ResourceServiceMock.cs" />
|
||||
<Compile Include="Mock\SettingsServiceMock.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ViewModelsTests.cs" />
|
||||
</ItemGroup>
|
||||
|
@@ -3,6 +3,8 @@ using System.Linq;
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.Storage.AccessCache;
|
||||
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
|
||||
using ModernKeePass.Pages;
|
||||
using ModernKeePass.Pages.SettingsPageFrames;
|
||||
using ModernKeePass.ViewModels;
|
||||
using ModernKeePassApp.Test.Mock;
|
||||
|
||||
@@ -11,6 +13,9 @@ namespace ModernKeePassApp.Test
|
||||
[TestClass]
|
||||
public class ViewModelsTests
|
||||
{
|
||||
private RecentServiceMock _recent = new RecentServiceMock();
|
||||
private ResourceServiceMock _resource = new ResourceServiceMock();
|
||||
|
||||
[TestMethod]
|
||||
public void TestAboutVm()
|
||||
{
|
||||
@@ -21,29 +26,30 @@ namespace ModernKeePassApp.Test
|
||||
[TestMethod]
|
||||
public void TestMainVm()
|
||||
{
|
||||
var database = new DatabaseHelperMock();
|
||||
var mainVm = new MainVm(null, null, database);
|
||||
var database = new DatabaseServiceMock();
|
||||
|
||||
var mainVm = new MainVm(null, null, database, _resource, _recent);
|
||||
Assert.AreEqual(1, mainVm.MainMenuItems.Count());
|
||||
var firstGroup = mainVm.MainMenuItems.FirstOrDefault();
|
||||
Assert.AreEqual(6, firstGroup.Count());
|
||||
|
||||
database.Status = 1;
|
||||
mainVm = new MainVm(null, null, database);
|
||||
mainVm = new MainVm(null, null, database, _resource, _recent);
|
||||
Assert.IsNotNull(mainVm.SelectedItem);
|
||||
Assert.AreEqual("Open", ((MainMenuItemVm) mainVm.SelectedItem).Title);
|
||||
Assert.AreEqual(typeof(OpenDatabasePage), ((MainMenuItemVm) mainVm.SelectedItem).PageType);
|
||||
|
||||
database.Status = 2;
|
||||
mainVm = new MainVm(null, null, database);
|
||||
mainVm = new MainVm(null, null, database, _resource, _recent);
|
||||
Assert.IsNotNull(mainVm.SelectedItem);
|
||||
Assert.AreEqual(2, mainVm.MainMenuItems.Count());
|
||||
Assert.AreEqual("Save", ((MainMenuItemVm) mainVm.SelectedItem).Title);
|
||||
Assert.AreEqual(typeof(SaveDatabasePage), ((MainMenuItemVm) mainVm.SelectedItem).PageType);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestCompositeKeyVm()
|
||||
{
|
||||
var database = new DatabaseHelperMock();
|
||||
var compositeKeyVm = new CompositeKeyVm(database);
|
||||
var database = new DatabaseServiceMock();
|
||||
var compositeKeyVm = new CompositeKeyVm(database, _resource);
|
||||
Assert.IsTrue(compositeKeyVm.OpenDatabase(false).GetAwaiter().GetResult());
|
||||
compositeKeyVm.StatusType = 1;
|
||||
compositeKeyVm.Password = "test";
|
||||
@@ -54,7 +60,7 @@ namespace ModernKeePassApp.Test
|
||||
[TestMethod]
|
||||
public void TestOpenVm()
|
||||
{
|
||||
var database = new DatabaseHelperMock
|
||||
var database = new DatabaseServiceMock
|
||||
{
|
||||
Status = 1,
|
||||
DatabaseFile = Package.Current.InstalledLocation.GetFileAsync(@"Databases\TestDatabase.kdbx")
|
||||
@@ -78,7 +84,7 @@ namespace ModernKeePassApp.Test
|
||||
.GetAwaiter().GetResult(), "MockDatabase");
|
||||
var recentVm = new RecentVm();
|
||||
Assert.IsTrue(recentVm.RecentItems.Count == 1);
|
||||
recentVm.SelectedItem = recentVm.RecentItems.FirstOrDefault();
|
||||
recentVm.SelectedItem = recentVm.RecentItems.FirstOrDefault() as RecentItemVm;
|
||||
Assert.IsTrue(recentVm.SelectedItem.IsSelected);
|
||||
mru.Clear();
|
||||
}
|
||||
@@ -91,13 +97,14 @@ namespace ModernKeePassApp.Test
|
||||
[TestMethod]
|
||||
public void TestSettingsVm()
|
||||
{
|
||||
var settingsVm = new SettingsVm();
|
||||
var settingsVm = new SettingsVm(new DatabaseServiceMock(), _resource);
|
||||
Assert.AreEqual(1, settingsVm.MenuItems.Count());
|
||||
var firstGroup = settingsVm.MenuItems.FirstOrDefault();
|
||||
Assert.AreEqual(1, firstGroup.Count());
|
||||
// All groups have an empty title, so all settings are put inside the empty group
|
||||
Assert.AreEqual(3, firstGroup.Count());
|
||||
Assert.IsNotNull(settingsVm.SelectedItem);
|
||||
var selectedItem = (ListMenuItemVm) settingsVm.SelectedItem;
|
||||
Assert.AreEqual("New", selectedItem.Title);
|
||||
Assert.AreEqual(typeof(SettingsNewDatabasePage), selectedItem.PageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user