public void BeforeEach()
        {
            _bestellingBuilder = new BestellingBuilder();

            _connection = new SqliteConnection("DataSource=:memory:");
            _connection.Open();

            var options = new DbContextOptionsBuilder <BestelContext>()
                          .UseSqlite(_connection)
                          .EnableSensitiveDataLogging()
                          .Options;

            _nijnContext = new TestBusContextBuilder().CreateTestContext();

            _dbContext = new BestelContext(options);
            _dbContext.Database.EnsureCreated();
            SeedDatabase();

            var artikelDataMapper    = new ArtikelDataMapper(_dbContext);
            var bestellingDataMapper = new BestellingDataMapper(_dbContext);
            var eventPublisher       = new EventPublisher(_nijnContext);

            _target = new EventListener(artikelDataMapper, bestellingDataMapper, eventPublisher);

            _dbContext.Database.EnsureCreated();
        }
コード例 #2
0
        public void BeforeEach()
        {
            _connection = new SqliteConnection("DataSource=:memory:");
            _connection.Open();

            _options = new DbContextOptionsBuilder <BestelContext>()
                       .UseSqlite(_connection)
                       .EnableSensitiveDataLogging()
                       .Options;

            _nijnHost = new TestBusContextBuilder().CreateTestContext();

            _context = new BestelContext(_options);
            _context.Database.EnsureCreated();
            SeedDatabase();

            var bestellingDataMapper = new BestellingDataMapper(_context);
            var artikelDataMapper    = new ArtikelDataMapper(_context);
            var eventPublisher       = new EventPublisher(_nijnHost);

            _target = new BestellingController(
                bestellingDataMapper: bestellingDataMapper,
                artikelDataMapper: artikelDataMapper,
                eventPublisher: eventPublisher,
                loggerFactory: new LoggerFactory()
                );
        }
        public void ThenVerwerkEenBestellingInHetSysteemMetHetKlantnummerBesteldatumEnBestelregels()
        {
            var bestellingDataMapper = new BestellingDataMapper(_context);
            var artikelDataMapper    = new ArtikelDataMapper(_context);
            var eventPublisherMock   = new Mock <IEventPublisher>(MockBehavior.Strict);
            var commandSenderMock    = new Mock <ICommandSender>(MockBehavior.Strict);

            var response = new ResponseCommandMessage(JsonConvert.SerializeObject(true), "type", "correlationId");

            eventPublisherMock.Setup(p => p.Publish(It.IsAny <DomainEvent>()));
            commandSenderMock.Setup(sendr => sendr.SendCommandAsync(It.IsAny <RequestCommandMessage>())).ReturnsAsync(response);

            var controller = new BestellingController(bestellingDataMapper, artikelDataMapper, eventPublisherMock.Object, new LoggerFactory());

            var bestelling = new BestellingCM
            {
                Klantnummer  = _klantnummer,
                BestelRegels = new List <BestelRegelCM>()
            };

            foreach (var regel in _bestelregels)
            {
                bestelling.BestelRegels.Add(new BestelRegelCM()
                {
                    Artikelnummer = regel.Item1,
                    Aantal        = regel.Item5
                });
            }

            var result = controller.HandlePlaatsBestelling(new PlaatsBestellingCommand(bestelling, ""));

            eventPublisherMock.VerifyAll();
            Assert.AreEqual(1, result);
        }
        public void BeforeEach()
        {
            _connection = new SqliteConnection("DataSource=:memory:");
            _connection.Open();

            _options = new DbContextOptionsBuilder <BestelContext>()
                       .UseSqlite(_connection)
                       .Options;

            _bestelContext = new BestelContext(_options);
            _bestelContext.Database.EnsureCreated();

            _target = new ArtikelDataMapper(_bestelContext);
        }