protected override void Seed(BookingsDbContext context) { var random = new Random(); var addressGenerator = new AddressGenerator(); var userNameGenerator = new UserNameGenerator(); var passportGenerator = new PassportGenerator(); var creditCardGenerator = new CreditCardGenerator(); for (int i = 0; i < 60; i++) { var fromDate = DateTime.Today.AddDays(random.Next(-2, 5)); var toDate = fromDate.AddDays(random.Next(1, 5)); context.Bookings.Add(new Booking { CustomerId = "Cust-10" + i, CustomerName = userNameGenerator.GetName(), Address = addressGenerator.GetAddress(), From = fromDate, To = toDate, Passport = passportGenerator.GetPassport(), Amount = random.Next(10, 40) * 100, Total = random.Next(10, 40) * 500, CreditCard = creditCardGenerator.GetCreditCard(), Floor = random.Next(0, 10), RoomNumber = random.Next(1, 500) }); } context.SaveChanges(); base.Seed(context); }
public CreditCardControllerTests() { _logger = new Mock <ILogger <CreditCardController> >(); _mediatorMock = new Mock <IMediator>(); _validInput = CreditCardGenerator.CreateValidCardInputFaker().Generate(); _controller = new CreditCardController(_mediatorMock.Object, _logger.Object); }
public void when_amount_spent_attained_then_promotion_unlocked() { var accountId = Guid.NewGuid(); var orderId1 = Guid.NewGuid(); var orderId2 = Guid.NewGuid(); var newOrderStatus = new OrderStatusChanged { IsCompleted = true, Status = new OrderStatusDetail { AccountId = accountId, Status = OrderStatus.Completed } }; var newPaymentInit = new CreditCardPaymentInitiated { Meter = (decimal)15.31 }; var newPayment = new CreditCardPaymentCaptured_V2 { FeeType = FeeTypes.None, Meter = (decimal)15.31, AuthorizationCode = Guid.NewGuid().ToString(), AccountId = accountId }; _orderCreatedCommand.AccountId = accountId; _orderCreatedCommand.SourceId = orderId1; newOrderStatus.SourceId = orderId1; newPaymentInit.SourceId = orderId1; newPaymentInit.OrderId = orderId1; newPayment.SourceId = orderId1; newPayment.OrderId = orderId1; OrderGenerator.Handle(_orderCreatedCommand); OrderGenerator.Handle(newOrderStatus); CreditCardGenerator.Handle(newPaymentInit); CreditCardGenerator.Handle(newPayment); TriggerSut.Handle(newPayment); _orderCreatedCommand.SourceId = orderId2; newOrderStatus.SourceId = orderId2; newPaymentInit.SourceId = orderId2; newPaymentInit.OrderId = orderId2; newPayment.SourceId = orderId2; newPayment.OrderId = orderId2; OrderGenerator.Handle(_orderCreatedCommand); OrderGenerator.Handle(newOrderStatus); CreditCardGenerator.Handle(newPaymentInit); CreditCardGenerator.Handle(newPayment); TriggerSut.Handle(newPayment); var commands = Commands.OfType <AddUserToPromotionWhiteList>().Where(c => c.AccountIds.Contains(accountId)).ToArray(); Assert.AreEqual(1, commands.Count()); Assert.AreEqual(30.62, commands[0].LastTriggeredAmount); }
public void ShouldReturnValidWhenCardInfoIsValid() { var card = CreditCardGenerator.CreateValidCardInputFaker().Generate(); var result = ValidateCard(card); Assert.True(result.IsValid); }
public CardRegisterCommandHandlerTests() { _logger = new Mock <ILogger <CardRegisterCommandHandler> >(); _respositoryMock = new Mock <ICreditCardRepository>(); _cardInput = CreditCardGenerator.CreateValidCardInputFaker().Generate(); _command = new CardRegisterCommand(_cardInput); _handler = new CardRegisterCommandHandler(_respositoryMock.Object, _logger.Object); }
public void ShouldReturnValidWhenCvcLengthIs4() { var card = CreditCardGenerator.CreateValidCardInputFaker() .RuleFor(u => u.Cvc, f => string.Join("", f.Random.Digits(4))) .Generate(); var result = ValidateCard(card); Assert.True(result.IsValid); }
public void ShouldReturnInvalidWhenCreditCarNumberIsInvalid() { var card = CreditCardGenerator.CreateValidCardInputFaker() .RuleFor(u => u.CardNumber, f => f.Random.String(11)) .Generate(); var result = ValidateCard(card); Assert.False(result.IsValid); }
public void ShouldReturnInvalidWhenNameIsNull() { var card = CreditCardGenerator.CreateValidCardInputFaker() .RuleFor(u => u.Name, f => null) .Generate(); var result = ValidateCard(card); Assert.False(result.IsValid); }
public void ShouldReturnValidWhenExpiryDateIsToday() { var card = CreditCardGenerator.CreateValidCardInputFaker() .RuleFor(u => u.ExpiryDate, f => DateTime.Today) .Generate(); var result = ValidateCard(card); Assert.True(result.IsValid); }
public void ShouldReturnInvalidWhenExpiryDateIsBeforeToday() { var card = CreditCardGenerator.CreateValidCardInputFaker() .RuleFor(u => u.ExpiryDate, f => f.Date.Past()) .Generate(); var result = ValidateCard(card); Assert.False(result.IsValid); }
public void ShouldReturnInvalidWhenCvcLengthGreaterThan4() { var card = CreditCardGenerator.CreateValidCardInputFaker() .RuleFor(u => u.Cvc, f => f.Random.String(5)) .Generate(); var result = ValidateCard(card); Assert.False(result.IsValid); }
private static void SeedCreditCards(BillsPaymentSystemContext ctx) { for (int i = 0; i < countCreditCards; i++) { var creditCard = CreditCardGenerator.NewCreditCard(ctx); if (IsValid(creditCard)) { ctx.CreditCards.Add(creditCard); } } ctx.SaveChanges(); }
public void TestGenerateCardNumber() { var bin = "485246"; int length = 16; var cn = CreditCardGenerator.GenerateCardNumber(bin, length); Assert.IsNotEmpty(cn); Assert.IsTrue(cn.Length == length); var result = CreditCardValidator.ValidCardNumber(cn); Assert.IsTrue(result.CardNumberFormat == CardNumberFormat.Valid_LuhnOnly || result.CardNumberFormat == CardNumberFormat.Valid_BINTest); }
public async Task ShouldReturnARecord_WhenCallingGetByIdAndDataExisting() { var mockResult = CreditCardGenerator.CreateValidCreditCardOutputFaker().Generate(); _mediatorMock.Setup(m => m.Send(It.IsAny <GetCreditCardByIdQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(mockResult); var response = await _controller.GetById(mockResult.Id); if (response is OkObjectResult result) { var record = result.Value as CreditCartOutput; Assert.IsType <OkObjectResult>(response); Assert.Equal(mockResult, record); } }
public async Task ShouldReturnListOfRecords_WhenCallingGet() { var mockResult = CreditCardGenerator.CreateValidCreditCardOutputFaker().Generate(3); _mediatorMock.Setup(m => m.Send(It.IsAny <GetAllCreditCardQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(mockResult); var response = await _controller.Get(); if (response is OkObjectResult result) { var recordSet = result.Value as List <CreditCartOutput>; Assert.IsType <OkObjectResult>(response); Assert.Equal(3, recordSet.Count); } }
public void TestGenerateBatchCardNumbers() { var bin = "485246"; int length = 16; var cardNumbers = new List <string>(); for (int i = 0; i < 128; i++) { var cn = CreditCardGenerator.GenerateCardNumber(bin, length); cardNumbers.Add(cn); } var isUnique = cardNumbers.GroupBy(x => x).All(g => g.Count() == 1); Assert.IsTrue(isUnique); }
public async Task ShouldReturnSingleModel() { var dbModel = CreditCardGenerator.CreateValidCreditCardFaker() .RuleFor(r => r.Id, f => f.Random.Long()) .Generate(); _respositoryMock.Setup(r => r.GetById(It.IsAny <long>())).ReturnsAsync(dbModel); var query = new GetCreditCardByIdQuery(dbModel.Id); var result = await _handler.Handle(query, CancellationToken.None); Assert.Equal(dbModel.Id, result.Id); Assert.Equal(dbModel.Name, result.Name); Assert.Equal(dbModel.CardNumber, result.CardNumber); Assert.Equal(dbModel.ExpiryDate, result.ExpiryDate); }
public async Task ShouldCreateRecord_WhenRecordDoesNotExist() { await ResetDatabase(); var creditCard = CreditCardGenerator.CreateValidCreditCardFaker().Generate(); await _creditCardRepository.Create(creditCard); var result = await Connection.QueryFirstAsync( @"SELECT * FROM CreditCards where CardNumber=@CardNumber", new { creditCard.CardNumber }); Assert.NotEqual(0L, result.Id); Assert.Equal(creditCard.Name, result.Name); Assert.Equal(creditCard.CardNumber, result.CardNumber); Assert.Equal(creditCard.EncryptedCvc, result.EncryptedCvc); Assert.Equal(creditCard.CvcSalt, result.CvcSalt); Assert.Equal(creditCard.ExpiryDate, result.ExpiryDate); }
public async Task ShouldReturnListOfOutputModel() { var dbModels = CreditCardGenerator.CreateValidCreditCardFaker().Generate(2); _respositoryMock.Setup(r => r.Get()).ReturnsAsync(dbModels); var result = (await _handler.Handle(_query, CancellationToken.None)).ToList(); var expected1 = dbModels[0]; var actual1 = result[0]; Assert.True(expected1.CardNumber == actual1.CardNumber && expected1.Name == actual1.Name && expected1.ExpiryDate == actual1.ExpiryDate); var expected2 = dbModels[1]; var actual2 = result[1]; Assert.True(expected2.CardNumber == actual2.CardNumber && expected2.Name == actual2.Name && expected2.ExpiryDate == actual2.ExpiryDate); }
private static void SeedCreditCards(BillsPaymentSystemContext db, int count) { CreditCardGenerator.InitialCreditCardSeed(db, count); }