public void TryInsert_Fails_WhenDuplicateKeyData() { // Arrange --------------------------- var data = new BudgetClassData("Insert-Error-Duplicate - Inserted", TransactionType.Income); UsingManagerHelper((scope, helper) => { helper.EnsureEntitiesExist(data); }); // Act ------------------------------- IEnumerable <ValidationResult> errors = null; UsingManager((scope, manager) => { var mapper = scope.Resolve <BudgetClassDataMapper>(); BudgetClass entity = mapper.CreateEntity(data); errors = manager.TryInsert(entity).ToList(); }); // Assert ---------------------------- errors.Should().ContainErrorMessage(BudgetClassManager.duplicateByNameError); }
public void TryDelete_DeletesRecord_WhenValidData() { // Arrange --------------------------- var data = new BudgetClassData("Delete-Success-Valid - Inserted", TransactionType.Income); UsingManagerHelper((scope, helper) => { helper.EnsureEntitiesExist(data); }); // Act ------------------------------- IEnumerable <ValidationResult> errors = null; UsingManager((scope, manager) => { BudgetClass entity = manager.SingleOrDefault(bc => bc.Name == data.Name); errors = manager.TryDelete(entity).ToList(); manager.SaveChanges(); }); // Assert ---------------------------- errors.Should().BeEmpty(); UsingManagerHelper((scope, helper) => { helper.AssertEntitiesDoNotExist(data); }); }
public void TryUpdate_Fails_WhenDuplicateKeyData() { // Arrange --------------------------- var data = new BudgetClassData("Update-Error-Duplicate - Inserted first", TransactionType.Income); var update = new BudgetClassData("Update-Error-Duplicate - Inserted second", TransactionType.Income); UsingManagerHelper((scope, helper) => { helper.EnsureEntitiesExist(data, update); }); // Act ------------------------------- IEnumerable <ValidationResult> errors = null; UsingManager((scope, manager) => { var mapper = scope.Resolve <BudgetClassDataMapper>(); BudgetClass entity = manager.SingleOrDefault(bc => bc.Name == data.Name); entity = mapper.UpdateEntity(entity, update); errors = manager.TryUpdate(entity).ToList(); }); // Assert ---------------------------- errors.Should().ContainErrorMessage(BudgetClassManager.duplicateByNameError); }
public void TryInsert_InsertsRecord_WhenValidData() { IEnumerable <ValidationResult> errors = null; // Arrange --------------------------- var data = new BudgetClassData("Insert-Success-Valid - Inserted", TransactionType.Income); UsingManagerHelper((scope, helper) => { helper.EnsureEntitiesDoNotExist(data); }); // Act ------------------------------- UsingManager((scope, manager) => { var mapper = scope.Resolve <BudgetClassDataMapper>(); BudgetClass entity = mapper.CreateEntity(data); errors = manager.TryInsert(entity).ToList(); manager.SaveChanges(); }); // Assert ---------------------------- errors.Should().BeEmpty(); UsingManagerHelper((scope, helper) => { helper.AssertEntitiesExist(data); }); }
public void TryInsert_InsertsRecord_WhenValidData() { IEnumerable <ValidationResult> errors; // Arrange --------------------------- var data = new BudgetClassData("Insert-Success-Valid - Inserted", TransactionType.Income); // Ensure entitiy does not exist using (var dbContext = dbSetupHelper.GetDbContext()) { var manager = new BudgetClassManager(dbContext); var entity = manager.SingleOrDefault(bc => bc.Name == data.Name); if (entity != null) { errors = manager.TryDelete(entity); errors.Should().BeEmpty(); manager.SaveChanges(); } } // Act ------------------------------- // Insert entity using (var dbContext = dbSetupHelper.GetDbContext()) { var manager = new BudgetClassManager(dbContext); BudgetClass entity = new BudgetClass { Name = data.Name, TransactionType = data.TransactionType }; errors = manager.TryInsert(entity); manager.SaveChanges(); } // Assert ---------------------------- errors.Should().BeEmpty(); // Verify entity exists using (var dbContext = dbSetupHelper.GetDbContext()) { var manager = new BudgetClassManager(dbContext); var entity = manager.SingleOrDefault(bc => bc.Name == data.Name); entity.Should().NotBeNull(); } }
public void TryUpdate_UpdatesRecord_WhenValidData() { IEnumerable <ValidationResult> errors; // Arrange --------------------------- var data = new BudgetClassData("Update-Success-Valid - Inserted", TransactionType.Income); var update = new BudgetClassData("Update-Success-Valid - Updated", TransactionType.Income); // Ensure entitiy "data" exists and "update" does not exist using (var dbContext = dbSetupHelper.GetDbContext()) { var manager = new BudgetClassManager(dbContext); var existing = manager.SingleOrDefault(bc => bc.Name == data.Name); if (existing == null) { existing = new BudgetClass { Name = data.Name, TransactionType = data.TransactionType }; errors = manager.TryInsert(existing); errors.Should().BeEmpty(); } var updated = manager.SingleOrDefault(bc => bc.Name == data.Name); if (updated != null) { errors = manager.TryDelete(updated); errors.Should().BeEmpty(); } manager.SaveChanges(); } // Act ------------------------------- using (var dbContext = dbSetupHelper.GetDbContext()) { var manager = new BudgetClassManager(dbContext); var entity = manager.SingleOrDefault(bc => bc.Name == data.Name); entity.Name = update.Name; errors = manager.TryUpdate(entity).ToList(); manager.SaveChanges(); } // Assert ---------------------------- errors.Should().BeEmpty(); using (var dbContext = dbSetupHelper.GetDbContext()) { var manager = new BudgetClassManager(dbContext); var existing = manager.SingleOrDefault(bc => bc.Name == update.Name); existing.Should().NotBeNull(); } }