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 when_ride_count_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 } }; _orderCreatedCommand.AccountId = accountId; _orderCreatedCommand.SourceId = orderId1; newOrderStatus.SourceId = orderId1; OrderGenerator.Handle(_orderCreatedCommand); OrderGenerator.Handle(newOrderStatus); TriggerSut.Handle(newOrderStatus); _orderCreatedCommand.SourceId = orderId2; newOrderStatus.SourceId = orderId2; OrderGenerator.Handle(_orderCreatedCommand); OrderGenerator.Handle(newOrderStatus); TriggerSut.Handle(newOrderStatus); var commands = Commands.OfType <AddUserToPromotionWhiteList>().Where(c => c.AccountIds.Contains(accountId)).ToArray(); Assert.AreEqual(1, commands.Count()); Assert.AreEqual(2, commands[0].LastTriggeredAmount); }
public void Setup() { _orderId = Guid.NewGuid(); var bus = new Mock <ICommandBus>(); bus.Setup(x => x.Send(It.IsAny <Envelope <ICommand> >())) .Callback <Envelope <ICommand> >(x => Commands.Add(x.Body)); bus.Setup(x => x.Send(It.IsAny <IEnumerable <Envelope <ICommand> > >())) .Callback <IEnumerable <Envelope <ICommand> > >(x => Commands.AddRange(x.Select(e => e.Body))); Commands = new List <ICommand>(); Sut = new OrderDispatchCompanyManager(bus.Object, () => new BookingDbContext(DbName), new IBSServiceProvider(new TestServerSettings(), new Logger(), new TaxiHailNetworkServiceClient(new TestServerSettings())), new TaxiHailNetworkServiceClient(new TestServerSettings()), new ConfigurationDao(() => new ConfigurationDbContext(DbName)), new Logger(), new TestServerSettings()); var ordetailsGenerator = new OrderGenerator(() => new BookingDbContext(DbName), new Logger(), new TestServerSettings()); ordetailsGenerator.Handle(new OrderCreated { SourceId = _orderId, AccountId = Guid.NewGuid(), UserLatitude = 45.463944, UserLongitude = -73.643234, PickupAddress = new Address { Apartment = "3939", Street = "1234 rue Saint-Hubert", RingCode = "3131", Latitude = 45.463944, Longitude = -73.643234 }, PickupDate = DateTime.Now, DropOffAddress = new Address { Street = "Velvet auberge st gabriel", Latitude = 45.411296, Longitude = -73.613314, }, CreatedDate = DateTime.Now, }); }
public void Setup() { _paymentId = Guid.NewGuid(); var orderId = Guid.NewGuid(); Sut.Handle(new CreditCardPaymentInitiated { SourceId = _paymentId, OrderId = orderId, Amount = 12.34m, TransactionId = "the transaction", }); var ordetailsGenerator = new OrderGenerator(() => new BookingDbContext(DbName), new Logger(), new TestServerSettings()); ordetailsGenerator.Handle(new OrderCreated { SourceId = orderId, AccountId = Guid.NewGuid(), PickupAddress = new Address { Apartment = "3939", Street = "1234 rue Saint-Hubert", RingCode = "3131", Latitude = 45.515065, Longitude = -73.558064 }, PickupDate = DateTime.Now, DropOffAddress = new Address { Street = "Velvet auberge st gabriel", Latitude = 45.50643, Longitude = -73.554052, }, CreatedDate = DateTime.Now, }); }