public void UpdateFailItemTest() { //Given var databseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); Account testAccount; var repository = new EfCoreAccountRepository(databseFactory); using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { testAccount = repository.Save(AccountEntityHelper.CreateEfTestAccount()); efCoreUnitOfWork.Commit(); } using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { //When testAccount.CompanyName = null; repository.Save(testAccount); // ReSharper disable once AccessToDisposedClosure TestDelegate testDelegate = () => efCoreUnitOfWork.Commit(); Assert.Throws <DbUpdateException>(testDelegate); } //Then //Get fresh database factory var finalDatabaseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); var finalRepo = new EfCoreAccountRepository(finalDatabaseFactory); var itemToCheck = finalRepo.GetAll(); Assert.AreEqual(testAccount.CompanyName, itemToCheck.FirstOrDefault()?.CompanyName, "The company name was updated when it should not have been"); }
public void UpdateSuccessItemTest() { //Given var databseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); Account testAccount; var repository = new EfCoreAccountRepository(databseFactory); using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { testAccount = repository.Save(AccountEntityHelper.CreateEfTestAccount()); efCoreUnitOfWork.Commit(); //When testAccount.CompanyName = "Updated account"; repository.Save(testAccount); efCoreUnitOfWork.Commit(); } //Then var finalDatabaseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); var finalRepo = new EfCoreAccountRepository(finalDatabaseFactory); var itemToCheck = finalRepo.GetById(testAccount.AccountId); EqualityHelper.PropertyValuesAreEqual(itemToCheck, testAccount, new[] { "LastModified", "Contact" }); }
public void RetrieveItemByIdTest() { //Given var databseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); var repository = new EfCoreAccountRepository(databseFactory); using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { var addedAccount = repository.Save(AccountEntityHelper.CreateEfTestAccount()); efCoreUnitOfWork.Commit(); //When var retrievedItem = repository.GetById(addedAccount.AccountId); //Then EqualityHelper.PropertyValuesAreEqual(retrievedItem, addedAccount); } }
public void AddItemTest() { //Given var databseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); var repository = new EfCoreAccountRepository(databseFactory); using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { //When var testAccount = AccountEntityHelper.CreateEfTestAccount(); var addedAccount = repository.Save(testAccount); efCoreUnitOfWork.Commit(); //Then Assert.AreNotEqual(addedAccount.AccountId, 0, "The account ID was not updated."); EqualityHelper.PropertyValuesAreEqual(addedAccount, testAccount, new[] { "AccountID" }); } }
public void AddItemFailsValidationTest() { //Given var databseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); var repository = new EfCoreAccountRepository(databseFactory); var testAccount = AccountEntityHelper.CreateEfTestAccount(); testAccount.CompanyName = null; repository.Save(testAccount); using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { //When // ReSharper disable once AccessToDisposedClosure TestDelegate testDelegate = () => efCoreUnitOfWork.Commit(); Assert.Throws <DbUpdateException>(testDelegate); } }
public void DeleteItemSuccessTest() { //Given var databseFactory = new EfCoreDatabaseFactoryBase <SharedLibraryContext>("SharedLibraryContext"); using (var efCoreUnitOfWork = new EfCoreUnitOfWork <SharedLibraryContext>(databseFactory)) { //Given var repository = new EfCoreAccountRepository(databseFactory); var testAccount = repository.Save(AccountEntityHelper.CreateEfTestAccount()); efCoreUnitOfWork.Commit(); //When repository.Delete(testAccount); efCoreUnitOfWork.Commit(); //Then var retrievedAccount = repository.GetById(testAccount.AccountId); Assert.IsNull(retrievedAccount, "The account was not deleted."); } }