private OrderCreationFacade CreateFacade(DateTime date) { var vatRateProvider = new Mock <IVatRateProvider>(); vatRateProvider.Setup(p => p.GetVatRate(It.IsAny <DateTime>(), It.IsAny <CalculateAddressDTO>())).Returns(1.21m); var vatNumberValidator = new Mock <IVatNumberValidator>(); vatNumberValidator.Setup(v => v.IsValidVat(It.IsAny <CalculateAddressDTO>())).Returns(true); var dateTimeProvider = new Mock <IDateTimeProvider>(); dateTimeProvider.SetupGet(v => v.Now).Returns(date); var eventsApi = new Mock <OpenEvents.Client.IEventsApi>(); eventsApi.Setup(a => a.ApiRegistrationsByEventIdCountGetAsync(It.IsAny <string>())).Returns(Task.FromResult(0)); var ordersCollection = new Mock <IMongoCollection <Order> >(); var discountCodesCollection = new Mock <IMongoCollection <DiscountCode> >(); var orderNumbersQuery = new Mock <OrderNumbersQuery>(ordersCollection.Object); orderNumbersQuery.Setup(q => q.Execute()).Returns(Task.FromResult <IList <string> >(new List <string>() { "2018000001" })); var orderCreatedPublisher = new Mock <IPublisher <OrderCreated> >(); var orderDiscountFacade = new Mock <OrderDiscountFacade>(discountCodesCollection.Object); var priceCalculationFacade = new OrderPriceCalculationFacade(vatRateProvider.Object, vatNumberValidator.Object, dateTimeProvider.Object, orderDiscountFacade.Object); return(new OrderCreationFacade(ordersCollection.Object, () => orderNumbersQuery.Object, priceCalculationFacade, orderCreatedPublisher.Object, dateTimeProvider.Object, eventsApi.Object)); }
public OrdersController(OrdersFacade ordersFacade, OrderCreationFacade orderCreationFacade, OrderPriceCalculationFacade orderPriceCalculationFacade, EventsCache eventsCache, DocumentStorageService documentStorageService) { this.ordersFacade = ordersFacade; this.orderCreationFacade = orderCreationFacade; this.orderPriceCalculationFacade = orderPriceCalculationFacade; this.eventsCache = eventsCache; this.documentStorageService = documentStorageService; }