//Scenario Result Expected public void CreateDataWithEncryptedConnectionReadDataWithNormalConnection_FileCantBeReaded_Fail() { SQLitePCL.Batteries_V2.Init(); EncriptedSQLiteConnectionProvider.Register(); if (File.Exists("CreateDataWithEncryptedConnectionReadDataWithNormalConnection.db")) { File.Delete("CreateDataWithEncryptedConnectionReadDataWithNormalConnection.db"); } System.IDisposable[] _discard; var CipherDataStore = EncriptedSQLiteConnectionProvider.CreateProviderFromString(@"XpoProvider=EncriptedSQLiteConnectionProvider;Data Source=CreateDataWithEncryptedConnectionReadDataWithNormalConnection.db", DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema, "abc123", out _discard); IDataLayer dl = new SimpleDataLayer(CipherDataStore); using (Session session = new Session(dl)) { System.Reflection.Assembly[] assemblies = new System.Reflection.Assembly[] { typeof(Customer).Assembly, }; session.UpdateSchema(assemblies); session.CreateObjectTypeRecords(assemblies); } UnitOfWork UoW = new UnitOfWork(dl); Customer Customer = new Customer(UoW); Customer.Name = "Jose Manuel Ojeda Melgar"; Customer.Address = "Saint Petersburg Russia"; Customer.Inactive = false; Customer.CreatedOn = new System.DateTime(2020, 5, 16); UoW.CommitChanges(); var NormalDataStore = SQLiteConnectionProvider.CreateProviderFromString(@"Data Source=CreateDataWithEncryptedConnectionReadDataWithNormalConnection.db", DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema, out _discard); UnitOfWork unitOfWork = new UnitOfWork(new SimpleDataLayer(NormalDataStore)); var Criteria = new DevExpress.Data.Filtering.BinaryOperator("Name", "Jose Manuel Ojeda Melgar"); Assert.Throws <DevExpress.Xpo.DB.Exceptions.SqlExecutionErrorException>(() => { var CustomerFromDatabase = unitOfWork.FindObject <Customer>(Criteria); Assert.AreEqual(CustomerFromDatabase.Name, Customer.Name); Assert.AreEqual(CustomerFromDatabase.Address, Customer.Address); Assert.AreEqual(CustomerFromDatabase.Inactive, Customer.Inactive); }); }
//Scenario Result Expected public void CreateDataStoreFromConnectionStringWithoutEncryptionKeyAndNullFunction_ExceptionIsThrown_Pass() { Assert.Throws <ArgumentNullException>(() => { SQLitePCL.Batteries_V2.Init(); EncriptedSQLiteConnectionProvider.Register(); if (File.Exists("CreateDataStoreFromConnectionStringWithoutEncryptionKeyAndNullFunction.db")) { File.Delete("CreateDataStoreFromConnectionStringWithoutEncryptionKeyAndNullFunction.db"); } //EncriptedSQLiteConnectionProvider.RequestPassword = new System.Func<string>(() => "abc123"); System.IDisposable[] _discard; var DataStore = EncriptedSQLiteConnectionProvider.CreateProviderFromString(@"XpoProvider=EncriptedSQLiteConnectionProvider;Data Source=CreateDataStoreFromConnectionStringWithoutEncryptionKeyAndNullFunction.db", DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema, string.Empty, out _discard); //ArgumentNullException IDataLayer dl = new SimpleDataLayer(DataStore); using (Session session = new Session(dl)) { System.Reflection.Assembly[] assemblies = new System.Reflection.Assembly[] { typeof(Customer).Assembly, }; session.UpdateSchema(assemblies); session.CreateObjectTypeRecords(assemblies); } UnitOfWork UoW = new UnitOfWork(dl); Customer Customer = new Customer(UoW); Customer.Name = "Jose Manuel Ojeda Melgar"; Customer.Address = "Saint Petersburg Russia"; Customer.Inactive = false; Customer.CreatedOn = new System.DateTime(2020, 5, 16); UoW.CommitChanges(); UnitOfWork unitOfWork = new UnitOfWork(dl); var Criteria = new DevExpress.Data.Filtering.BinaryOperator("Name", "Jose Manuel Ojeda Melgar"); var CustomerFromDatabase = unitOfWork.FindObject <Customer>(Criteria); Assert.AreEqual(CustomerFromDatabase.Name, Customer.Name); Assert.AreEqual(CustomerFromDatabase.Address, Customer.Address); Assert.AreEqual(CustomerFromDatabase.Inactive, Customer.Inactive); }); }
//Scenario Result Expected public void CreateDataStoreFromIDbConnection_DataIsConsistent_Pass() { SQLitePCL.Batteries_V2.Init(); EncriptedSQLiteConnectionProvider.Register(); if (File.Exists("CreateDataStoreFromIDbConnection.db")) { File.Delete("CreateDataStoreFromIDbConnection.db"); } var connection = new SqliteConnection("Data Source=CreateDataStoreFromIDbConnection.db"); System.IDisposable[] _discard; var DataStore = EncriptedSQLiteConnectionProvider.CreateProviderFromConnection(connection, DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema, "abc123"); IDataLayer dl = new SimpleDataLayer(DataStore); using (Session session = new Session(dl)) { System.Reflection.Assembly[] assemblies = new System.Reflection.Assembly[] { typeof(Customer).Assembly, }; session.UpdateSchema(assemblies); session.CreateObjectTypeRecords(assemblies); } UnitOfWork UoW = new UnitOfWork(dl); Customer Customer = new Customer(UoW); Customer.Name = "Jose Manuel Ojeda Melgar"; Customer.Address = "Saint Petersburg Russia"; Customer.Inactive = false; Customer.CreatedOn = new System.DateTime(2020, 5, 16); UoW.CommitChanges(); UnitOfWork unitOfWork = new UnitOfWork(dl); var Criteria = new DevExpress.Data.Filtering.BinaryOperator("Name", "Jose Manuel Ojeda Melgar"); var CustomerFromDatabase = unitOfWork.FindObject <Customer>(Criteria); Assert.AreEqual(CustomerFromDatabase.Name, Customer.Name); Assert.AreEqual(CustomerFromDatabase.Address, Customer.Address); Assert.AreEqual(CustomerFromDatabase.Inactive, Customer.Inactive); }