public async Task Return_OK_Status_Code_When_Successful() { var databaseName = nameof(Return_OK_Status_Code_When_Successful); var options = CashRegisterService_Utilities.GetOptions(databaseName); // Arrange var context = new CashRegisterContext(options); var banknote = new Banknotes() { Fifty = 1, One = 1, }; context.Banknotes.Add(banknote); context.SaveChanges(); var sut = new CashRegisterService(context); var withdrawAmount = 51; var response = await sut.HandleCashWithdraw(withdrawAmount); Assert.IsTrue(response.StatusCode == 200); }
public async Task Update_Database_With_Withdrawn_Banknotes() { var databaseName = nameof(Update_Database_With_Withdrawn_Banknotes); var options = CashRegisterService_Utilities.GetOptions(databaseName); // Arrange var context = new CashRegisterContext(options); var banknote = new Banknotes() { Fifty = 1, One = 1, }; context.Banknotes.Add(banknote); context.SaveChanges(); // Act var sut = new CashRegisterService(context); var withdrawAmount = 51; var response = await sut.HandleCashWithdraw(withdrawAmount); // Assert using (var actAndAssertContext = new CashRegisterContext(options)) { Assert.IsTrue(actAndAssertContext.Banknotes.FirstOrDefault().Fifty == 0); Assert.IsTrue(actAndAssertContext.Banknotes.FirstOrDefault().One == 0); }; }
public async Task Add_Banknotes_Cout_To_Database_Object_Values() { var databaseName = nameof(Add_Banknotes_Cout_To_Database_Object_Values); var options = CashRegisterService_Utilities.GetOptions(databaseName); var banknotesDTO = new BanknotesDTO() { Fifty = 5, Twenty = 2, Ten = 3, Five = 6, Two = 4, One = 9 }; using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.Deposit(banknotesDTO); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Fifty, 5); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Twenty, 2); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Ten, 3); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Five, 6); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Two, 4); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().One, 9); }; }
public async Task Return_Model_With_Withdrawn_Banknotes() { var databaseName = nameof(Return_Model_With_Withdrawn_Banknotes); var options = CashRegisterService_Utilities.GetOptions(databaseName); // Arrange var context = new CashRegisterContext(options); var banknote = new Banknotes() { Fifty = 1, One = 1, }; context.Banknotes.Add(banknote); context.SaveChanges(); var sut = new CashRegisterService(context); var withdrawAmount = 51; var response = await sut.HandleCashWithdraw(withdrawAmount); Assert.IsNotNull(response.Model); }
public async Task Return_Failure_Message_When_Banknotes_Cannot_Fulfil_Withdraw() { var databaseName = nameof(Return_Failure_Message_When_Banknotes_Cannot_Fulfil_Withdraw); var options = CashRegisterService_Utilities.GetOptions(databaseName); // Arrange var context = new CashRegisterContext(options); var banknote = new Banknotes() { Fifty = 1, One = 1, }; context.Banknotes.Add(banknote); context.SaveChanges(); var sut = new CashRegisterService(context); var withdrawAmount = 41; var response = await sut.HandleCashWithdraw(withdrawAmount); Assert.IsTrue(response.Message == Messages.BanknotesCannotFulfilPayment); }
public async Task Return_FailureMessage_When_NoCash_Is_Provided() { var databaseName = nameof(Return_FailureMessage_When_NoCash_Is_Provided); var options = CashRegisterService_Utilities.GetOptions(databaseName); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.Deposit(null); Assert.IsTrue(response.Message == Messages.NoCashIsProvidedToBeDeposited); }; }
public async Task Return_Forbidden_Status_Code_When_RegisterEmpty() { var databaseName = nameof(Return_Forbidden_Status_Code_When_RegisterEmpty); var options = CashRegisterService_Utilities.GetOptions(databaseName); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.TotalAmountAvailable(); Assert.IsTrue(response.StatusCode == 403); }; }
public async Task Return_Null_Model_When_RegisterEmpty() { var databaseName = nameof(Return_Null_Model_When_RegisterEmpty); var options = CashRegisterService_Utilities.GetOptions(databaseName); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.TotalAmountAvailable(); Assert.IsNull(response.Model); }; }
public async Task Return_Forbidden_Status_Code_When_NoCash_Is_Provided() { var databaseName = nameof(Return_Forbidden_Status_Code_When_NoCash_Is_Provided); var options = CashRegisterService_Utilities.GetOptions(databaseName); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.Deposit(null); Assert.IsTrue(response.StatusCode == 403); }; }
public async Task Return_Failure_Message_When_Withdraw_Amount_IsLess_Than_Zero() { var databaseName = nameof(Return_Failure_Message_When_Withdraw_Amount_IsLess_Than_Zero); var options = CashRegisterService_Utilities.GetOptions(databaseName); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var withdrawAmount = -5; var response = await sut.HandleCashWithdraw(withdrawAmount); Assert.IsTrue(response.Message == Messages.NegativeAmountCannotBeWithdrawn); }; }
public async Task Return_Forbidden_Status_Code_When_Withdraw_Amount_IsLess_Than_Zero() { var databaseName = nameof(Return_Forbidden_Status_Code_When_Withdraw_Amount_IsLess_Than_Zero); var options = CashRegisterService_Utilities.GetOptions(databaseName); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var withdrawAmount = -5; var response = await sut.HandleCashWithdraw(withdrawAmount); Assert.IsTrue(response.StatusCode == 403); }; }
public async Task Return_OK_StatusCode_When_Cash_Found() { var databaseName = nameof(Return_OK_StatusCode_When_Cash_Found); var options = CashRegisterService_Utilities.GetOptions(databaseName); CashRegisterService_Utilities.FillContextWithUserData(options); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.TotalAmountAvailable(); Assert.IsTrue(response.StatusCode == 200); }; }
public async Task Return_Correct_Instance_Of_Model_When_Successful() { var databaseName = nameof(Return_Correct_Instance_Of_Model_When_Successful); var options = CashRegisterService_Utilities.GetOptions(databaseName); CashRegisterService_Utilities.FillContextWithUserData(options); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.TotalAmountAvailable(); Assert.IsInstanceOfType(response, typeof(GeneralResponseModel <BanknotesDTO>)); }; }
public async Task Return_Not_Null_Model_When_Successful() { var databaseName = nameof(Return_Not_Null_Model_When_Successful); var options = CashRegisterService_Utilities.GetOptions(databaseName); CashRegisterService_Utilities.FillContextWithUserData(options); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.Withdraw(50); Assert.IsNotNull(response.Model); }; }
public async Task Return_OK_Status_Code_When_Successful() { var databaseName = nameof(Return_OK_Status_Code_When_Successful); var options = CashRegisterService_Utilities.GetOptions(databaseName); CashRegisterService_Utilities.FillContextWithUserData(options); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.CalculateChange(6, 8); Assert.IsTrue(response.StatusCode == 200); }; }
public async Task Return_Failure_Message_When_Withdraw_Amount_Bigger_Than_Banknotes_Sum() { var databaseName = nameof(Return_Failure_Message_When_Withdraw_Amount_Bigger_Than_Banknotes_Sum); var options = CashRegisterService_Utilities.GetOptions(databaseName); CashRegisterService_Utilities.FillContextWithUserData(options); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var withdrawAmount = 99999; var response = await sut.HandleCashWithdraw(withdrawAmount); Assert.IsTrue(response.Message == Messages.CashNotEnoughToWithdraw); }; }
public async Task Return_Success_Message_When_Successful() { var databaseName = nameof(Return_Success_Message_When_Successful); var options = CashRegisterService_Utilities.GetOptions(databaseName); var banknotesDTO = new BanknotesDTO() { Fifty = 5, Twenty = 2, Ten = 3, Five = 6, Two = 4, One = 9 }; using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.Deposit(banknotesDTO); Assert.IsTrue(response.Message == Messages.DepositPassed); }; }
public async Task Initiliaze_Banknotes_Object_In_Database_With_Zero_Values() { var databaseName = nameof(Initiliaze_Banknotes_Object_In_Database_With_Zero_Values); var options = CashRegisterService_Utilities.GetOptions(databaseName); var banknotesDTO = new Mock <BanknotesDTO>(); using (var actAndAssertContext = new CashRegisterContext(options)) { var sut = new CashRegisterService(actAndAssertContext); var response = await sut.Deposit(banknotesDTO.Object); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Fifty, 0); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Twenty, 0); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Ten, 0); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Five, 0); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Two, 0); Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().One, 0); }; }