2017-11-22 18:54:03 +01:00
|
|
|
|
using System;
|
|
|
|
|
using Windows.ApplicationModel;
|
|
|
|
|
using Windows.Storage;
|
|
|
|
|
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
|
|
|
|
|
using ModernKeePass.Common;
|
|
|
|
|
using ModernKeePass.ViewModels;
|
|
|
|
|
|
|
|
|
|
namespace ModernKeePassApp.Test
|
|
|
|
|
{
|
|
|
|
|
[TestClass]
|
|
|
|
|
public class DatabaseTests
|
|
|
|
|
{
|
|
|
|
|
private readonly DatabaseHelper _database = new DatabaseHelper();
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
public void TestCreate()
|
|
|
|
|
{
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int) DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
_database.DatabaseFile = ApplicationData.Current.TemporaryFolder.CreateFileAsync("NewDatabase.kdbx").GetAwaiter().GetResult();
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Opening, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
OpenOrCreateDatabase(true);
|
|
|
|
|
_database.Close();
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
public void TestOpen()
|
|
|
|
|
{
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
_database.DatabaseFile = Package.Current.InstalledLocation.GetFileAsync(@"Databases\TestDatabase.kdbx").GetAwaiter().GetResult();
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Opening, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
OpenOrCreateDatabase(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
public void TestSave()
|
|
|
|
|
{
|
|
|
|
|
TestOpen();
|
|
|
|
|
Assert.IsTrue(_database.Save(ApplicationData.Current.TemporaryFolder.CreateFileAsync("SaveDatabase.kdbx").GetAwaiter().GetResult()));
|
|
|
|
|
_database.Close();
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Closed, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
TestOpen();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OpenOrCreateDatabase(bool createNew)
|
|
|
|
|
{
|
|
|
|
|
_database.Open(null, createNew);
|
2017-11-23 15:26:57 +01:00
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.NoCompositeKey, _database.Status);
|
|
|
|
|
var compositeKey = new CompositeKeyVm(_database)
|
2017-11-22 18:54:03 +01:00
|
|
|
|
{
|
2017-11-23 15:26:57 +01:00
|
|
|
|
HasPassword = true,
|
|
|
|
|
Password = "test"
|
|
|
|
|
};
|
|
|
|
|
compositeKey.OpenDatabase(createNew);
|
|
|
|
|
Assert.AreEqual((int)DatabaseHelper.DatabaseStatus.Opened, _database.Status);
|
2017-11-22 18:54:03 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|