public async Task FinishBestellingLowersVoorraad() { _magazijnCalled = 0; using (var context = new BeheerContext(options)) { var bestelling = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3), new BestellingItem(2, 5) } }; var datamapper = new BestellingDatamapper(context); await datamapper.Insert(bestelling); } var commandPublisher = new CommandPublisher(_context); var result = await commandPublisher.Publish <int>(new BestellingAfrondenCommand { Id = 1 }, NameConstants.FinishBestellingCommandQueue); Thread.Sleep(1000); Assert.AreEqual(2, _magazijnCalled); }
public void InsertArtikelFromEvent() { var artikelEvent = new ArtikelAanCatalogusToegevoegd { AfbeeldingUrl = "Afbeelding.jpg", Artikelnummer = 1234, Beschrijving = "Grote fiets voor iedereen", Leverancier = "Fietsen bv", Leveranciercode = "1", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets", Prijs = 299.3m }; var eventPublisher = new EventPublisher(_context); eventPublisher.Publish(artikelEvent); Thread.Sleep(4000); using (var context = new BeheerContext(options)) { var result = context.Artikelen.SingleOrDefault(a => a.Artikelnummer == 1234); Assert.IsNotNull(result); Assert.AreEqual("Fiets", result.Naam); Assert.AreEqual(0, result.Voorraad); } }
public void Initialize() { connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); options = new DbContextOptionsBuilder <BeheerContext>() .UseSqlite(connection) .Options; using (var context = new BeheerContext(options)) { context.Database.EnsureCreated(); } var services = new ServiceCollection(); services.AddSingleton <DbContextOptions>(options); services.AddTransient <BeheerContext, BeheerContext>(); services.AddTransient <IArtikelDatamapper, ArtikelDatamapper>(); services.AddTransient <IEventPublisher, EventPublisher>(); services.AddTransient <IKlantDatamapper, KlantDatamapper>(); _context = new TestBusContext(); var builder = new MicroserviceHostBuilder() .RegisterDependencies(services) .WithContext(_context) .AddEventListener <MagazijnListener>(); _host = builder.CreateHost(); _host.StartListening(); }
public void InsertAddsArtikelToDatabase() { var artikel = new Artikel { Artikelnummer = 1234, Beschrijving = "Grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets", Prijs = 299.3m }; using (var context = new BeheerContext(_options)) { var dataMapper = new ArtikelDatamapper(context); dataMapper.Insert(artikel); } using (var context = new BeheerContext(_options)) { var result = context.Artikelen.SingleOrDefault(a => a.Artikelnummer == 1234); Assert.IsNotNull(result); Assert.AreEqual("Fiets", result.Naam); Assert.AreEqual(0, result.Voorraad); } }
public async Task GetKlantWithBestellingIdReturnsKlant() { var klant = new Klant { Voornaam = "Hans", Achternaam = "Van Huizen", Id = "1" }; var bestelling = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BestellingStatus = BestellingStatus.TerControleVoorSales, }; using (var context = new BeheerContext(_options)) { var mapper = new KlantDatamapper(context); mapper.Insert(klant); var bestellingmapper = new BestellingDatamapper(context); await bestellingmapper.Insert(bestelling); } using (var context = new BeheerContext(_options)) { var mapper = new KlantDatamapper(context); var resultKlant = await mapper.GetKlantWithBestellingId(1); Assert.AreEqual("1", resultKlant.Id); Assert.AreEqual("Van Huizen", resultKlant.Achternaam); Assert.AreEqual("Hans", resultKlant.Voornaam); } }
public async Task GetUnfinishedBestellingenOfKlant() { var klant = new Klant { Voornaam = "Hans", Achternaam = "Van Huizen", Id = "1" }; var bestelling1 = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BestellingStatus = BestellingStatus.TerControleVoorSales, }; var bestelling2 = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Middenhoven", Postcode = "1234FG", BestellingStatus = BestellingStatus.TerControleVoorSales, }; var bestelling3 = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Hooghoven", Postcode = "1234FG", BestellingStatus = BestellingStatus.InBehandelingDoorMagazijn, }; using (var context = new BeheerContext(_options)) { var mapper = new KlantDatamapper(context); mapper.Insert(klant); var bestellingmapper = new BestellingDatamapper(context); await bestellingmapper.Insert(bestelling1); await bestellingmapper.Insert(bestelling2); await bestellingmapper.Insert(bestelling3); } using (var context = new BeheerContext(_options)) { var mapper = new KlantDatamapper(context); var bestellingen = await mapper.GetUnFinishedBestellingenOfKlant("1"); Assert.AreEqual(2, bestellingen.Count); Assert.IsTrue(bestellingen.Any(b => b.Plaats == "Laaghoven")); Assert.IsTrue(bestellingen.Any(b => b.Plaats == "Middenhoven")); Assert.IsFalse(bestellingen.Any(b => b.Plaats == "Hooghoven")); } }
public void ChangeVoorraadEvent() { using (var context = new BeheerContext(options)) { var artikel = new Artikel { Artikelnummer = 1234, Beschrijving = "Grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets", Prijs = 299.3m }; new ArtikelDatamapper(context).Insert(artikel); } var voorraadEvent = new VoorraadVerhoogdEvent { Artikelnummer = 1234, Aantal = 5, NieuweVoorraad = 5 }; var eventPublisher = new EventPublisher(_context); eventPublisher.Publish(voorraadEvent); Thread.Sleep(4000); using (var context = new BeheerContext(options)) { var result = context.Artikelen.SingleOrDefault(a => a.Artikelnummer == 1234); Assert.IsNotNull(result); Assert.AreEqual("Fiets", result.Naam); Assert.AreEqual(5, result.Voorraad); } var voorraadVerlaagdEvent = new VoorraadVerlaagdEvent { Artikelnummer = 1234, Aantal = 3, NieuweVoorraad = 2 }; eventPublisher.Publish(voorraadVerlaagdEvent); Thread.Sleep(4000); using (var context = new BeheerContext(options)) { var result = context.Artikelen.SingleOrDefault(a => a.Artikelnummer == 1234); Assert.IsNotNull(result); Assert.AreEqual("Fiets", result.Naam); Assert.AreEqual(2, result.Voorraad); } }
public async Task GetFirstUndoneReturnsNullWhenNoBestelling() { using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); var result = await mapper.GetFirstUndone(); Assert.AreEqual(0, result); } }
private static void Main(string[] args) { var connectionString = Environment.GetEnvironmentVariable("SPRINTERDB"); var options = new DbContextOptionsBuilder <BeheerContext>() .UseNpgsql(connectionString) .Options; ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider( new ConsoleLoggerProvider( (text, logLevel) => logLevel >= LogLevel.Debug, true)); var connectionBuilder = new RabbitMQContextBuilder() .ReadFromEnvironmentVariables(); var nijnContext = connectionBuilder.CreateContext(); var services = new ServiceCollection(); services.AddTransient <ICommandPublisher, CommandPublisher>(); services.AddTransient <IEventPublisher, EventPublisher>(); services.AddSingleton <DbContextOptions>(options); services.AddTransient <BeheerContext, BeheerContext>(); services.AddTransient <IArtikelDatamapper, ArtikelDatamapper>(); services.AddTransient <IBestellingDatamapper, BestellingDatamapper>(); services.AddSingleton <IBusContext <IConnection> >(nijnContext); services.AddTransient <IKlantDatamapper, KlantDatamapper>(); var builder = new MicroserviceHostBuilder() .SetLoggerFactory(loggerFactory) .RegisterDependencies(services) .WithContext(nijnContext) .UseConventions(); var host = builder.CreateHost(); host.CreateQueues(); using (var context = new BeheerContext(options)) { context.Database.EnsureDeleted(); context.Database.EnsureCreated(); if (!context.Artikelen.Any()) { ScrapeAuditLog(nijnContext, services, DateTime.Now).Wait(); } } host.StartListeningInOtherThread(); var logger = NijnLogger.CreateLogger <Program>(); logger.LogInformation("Started..."); }
public void Initialize() { _connection = new SqliteConnection("DataSource=:memory:"); _connection.Open(); _options = new DbContextOptionsBuilder <BeheerContext>() .UseSqlite(_connection) .Options; using (var context = new BeheerContext(_options)) { context.Database.EnsureCreated(); } }
public async Task GetVolgendeBestellingGivesNextBestelling() { var bestelling = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BestellingStatus = BestellingStatus.GereedVoorBehandeling }; var bestelling2Finished = new Bestelling { KlantId = "1", AdresRegel1 = "Middenland 34", Plaats = "Middenhoven", Postcode = "4535FF", BestellingStatus = BestellingStatus.Verzonden }; var bestelling3 = new Bestelling { KlantId = "1", AdresRegel1 = "Hoogstraat 27", Plaats = "Hooghoven", Postcode = "4321PD", BestellingStatus = BestellingStatus.GereedVoorBehandeling }; using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); await mapper.Insert(bestelling); await mapper.Insert(bestelling2Finished); await mapper.Insert(bestelling3); } using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); var result = await mapper.GetFirstUndone(); Assert.AreEqual(1, result); //Should skip the second one var result2 = await mapper.GetFirstUndone(); Assert.AreEqual(3, result2); } }
public void GivenHetKredietVanVanDeKlantBovenDeLimietVanIs(decimal kredietBedrag, decimal limietBedrag) { klant = new Klant { Id = "1", Voornaam = "Negin", Achternaam = "Nafissi", KredietMetSales = kredietBedrag }; using (var context = new BeheerContext(options)) { KlantDatamapper klantDatamapper = new KlantDatamapper(context); klantDatamapper.Insert(klant); } }
public async Task WhenDeBestellingIsGeplaatst() { using (var context = new BeheerContext(options)) { BestellingDatamapper bestellingDatamapper = new BestellingDatamapper(context); KlantDatamapper klantDatamapper = new KlantDatamapper(context); TestBusContext testBusContext = new TestBusContext(); CommandPublisher commandPublisher = new CommandPublisher(testBusContext); EventPublisher eventPublisher = new EventPublisher(testBusContext); bestellingListener = new BestellingListener(bestellingDatamapper, klantDatamapper, commandPublisher, eventPublisher); id = await bestellingListener.PlaatsBestelling(bestelling); } }
public void Initialize() { _connection = new SqliteConnection("DataSource=:memory:"); _connection.Open(); _options = new DbContextOptionsBuilder <BeheerContext>() .UseSqlite(_connection) .Options; using (var context = new BeheerContext(_options)) { context.Database.EnsureCreated(); } var artikel = new Artikel { Artikelnummer = 1, Beschrijving = "Grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets", Prijs = 299.3m, Voorraad = 5 }; var artikel2 = new Artikel { Artikelnummer = 2, Beschrijving = "HELE grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets Groot", Prijs = 299.3m, Voorraad = 8 }; var klant = new Klant { Voornaam = "Hans", Achternaam = "Van Huizen", Id = "1" }; using (var context = new BeheerContext(_options)) { var klantDatamapper = new KlantDatamapper(context); klantDatamapper.Insert(klant); var dataMapper = new ArtikelDatamapper(context); dataMapper.Insert(artikel); dataMapper.Insert(artikel2); } }
public async Task ThenDeBestellingNaarSalesWordtDoorgestuurd(string toestand) { using (var context = new BeheerContext(options)) { BestellingDatamapper bestellingDatamapper = new BestellingDatamapper(context); var bestaandeBestelling = await bestellingDatamapper.GetBestelling(id); if (toestand == "wel") { Assert.IsTrue(bestaandeBestelling.BestellingStatus == BestellingStatus.TerControleVoorSales); } else { Assert.IsTrue(bestaandeBestelling.BestellingStatus == BestellingStatus.GereedVoorBehandeling); } } }
public async Task KeurBestellingGoedChangesBestellingToGereedVoorBehandeling() { using (var context = new BeheerContext(options)) { var bestelling = new Bestelling { Id = 1, KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BestellingStatus = BestellingStatus.TerControleVoorSales, BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3) { Id = 1 }, new BestellingItem(2, 5) { Id = 2 } } }; var datamapper = new BestellingDatamapper(context); await datamapper.Insert(bestelling); } var commandPublisher = new CommandPublisher(_context); await commandPublisher.Publish <int>(new BestellingGoedkeurenCommand { Id = 1 }, NameConstants.BestellingGoedKeurenCommandQueue); Thread.Sleep(1000); using (var context = new BeheerContext(options)) { var datamapper = new BestellingDatamapper(context); var result = await datamapper.GetBestelling(1); Assert.AreEqual(BestellingStatus.GereedVoorBehandeling, result.BestellingStatus); var klantmapper = new KlantDatamapper(context); var klant = await klantmapper.GetKlant("1"); } }
public async Task NieuweBestellingThatGoesAboveKredietLimitGoesToSale() { var bestelling = new NieuweBestellingCommand { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3), new BestellingItem(2, 3) } }; var commandPublisher = new CommandPublisher(_context); await commandPublisher.Publish <bool>(bestelling, NameConstants.NieuweBestellingCommandQueue); Thread.Sleep(500); using (var context = new BeheerContext(options)) { var datamapper = new BestellingDatamapper(context); var result = await datamapper.GetBestelling(1); Assert.AreEqual("Hans", result.Klant.Voornaam); Assert.AreEqual("Van Huizen", result.Klant.Achternaam); Assert.AreEqual("1", result.KlantId); Assert.AreEqual("Laagstraat 11", result.AdresRegel1); Assert.AreEqual("Laaghoven", result.Plaats); Assert.AreEqual("1234FG", result.Postcode); Assert.AreEqual(2, result.BesteldeArtikelen.Count); Assert.AreEqual(BestellingStatus.TerControleVoorSales, result.BestellingStatus); Assert.IsTrue(result.BesteldeArtikelen.Any(b => b.Artikel.Naam == "Fiets" && b.Aantal == 3)); var klantMapper = new KlantDatamapper(context); var klant = await klantMapper.GetKlant("1"); //Krediet should not be added yet Assert.AreEqual(508.2m, klant.KredietMetSales); } }
public async Task InsertNieuweBestellingUnder500EuroFromEventSetsStatusToGereed() { var bestelling = new NieuweBestellingCommand { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 1), new BestellingItem(2, 1) } }; var commandPublisher = new CommandPublisher(_context); await commandPublisher.Publish <bool>(bestelling, NameConstants.NieuweBestellingCommandQueue); Thread.Sleep(500); using (var context = new BeheerContext(options)) { var datamapper = new BestellingDatamapper(context); var result = await datamapper.GetBestelling(1); Assert.AreEqual("Hans", result.Klant.Voornaam); Assert.AreEqual("Van Huizen", result.Klant.Achternaam); Assert.AreEqual("1", result.KlantId); Assert.AreEqual("Laagstraat 11", result.AdresRegel1); Assert.AreEqual("Laaghoven", result.Plaats); Assert.AreEqual("1234FG", result.Postcode); Assert.AreEqual(2, result.BesteldeArtikelen.Count); Assert.AreEqual(BestellingStatus.GereedVoorBehandeling, result.BestellingStatus); Assert.IsTrue(result.BesteldeArtikelen.Any(b => b.Artikel.Naam == "Fiets" && b.Aantal == 1)); var klantMapper = new KlantDatamapper(context); var klant = await klantMapper.GetKlant("1"); Assert.AreEqual(169.4m, klant.KredietMetSales); } }
public void GivenDatErEenBestellingVanIsGeplaatst(decimal totaalBedrag) { connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); options = new DbContextOptionsBuilder <BeheerContext>() .UseSqlite(connection) .Options; using (var context = new BeheerContext(options)) { context.Database.EnsureCreated(); } artikel = new Artikel { Artikelnummer = 1, Beschrijving = "Test beschrijving", LeverbaarTot = new DateTime(2019, 01, 22), LeverbaarVanaf = new DateTime(2019, 01, 21), Naam = "Fiets", Prijs = (totaalBedrag / 1.21M), Voorraad = 10 }; using (var context = new BeheerContext(options)) { ArtikelDatamapper artikelDatamapper = new ArtikelDatamapper(context); artikelDatamapper.Insert(artikel); } bestelling = new NieuweBestellingCommand { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 1) } }; }
public async Task UpdateBestellingUpdatesIntoDatabase() { var bestelling = new Bestelling { KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3), new BestellingItem(2, 5) } }; using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); await mapper.Insert(bestelling); } bestelling.BestellingStatus = BestellingStatus.GereedVoorBehandeling; using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); await mapper.Update(bestelling); } using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); var result = await mapper.GetBestelling(1); Assert.AreEqual(BestellingStatus.GereedVoorBehandeling, result.BestellingStatus); } }
public async Task InsertBestellingIntoDatabase() { var klant = new Klant { Voornaam = "Hans", Achternaam = "Van Huizen", Id = "1" }; using (var context = new BeheerContext(_options)) { var mapper = new KlantDatamapper(context); mapper.Insert(klant); } using (var context = new BeheerContext(_options)) { var mapper = new KlantDatamapper(context); var result = await mapper.GetKlant("1"); Assert.AreEqual("Hans", result.Voornaam); Assert.AreEqual("Van Huizen", result.Achternaam); Assert.AreEqual("1", result.Id); } }
public async Task getAllArtikelenReturnsAll() { var artikel = new Artikel { Artikelnummer = 1, Beschrijving = "Grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets", Prijs = 299.3m, Voorraad = 5 }; var artikel2 = new Artikel { Artikelnummer = 2, Beschrijving = "HELE grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets Groot", Prijs = 299.3m, Voorraad = 8 }; using (var context = new BeheerContext(_options)) { var dataMapper = new ArtikelDatamapper(context); dataMapper.Insert(artikel); dataMapper.Insert(artikel2); } using (var context = new BeheerContext(_options)) { var dataMapper = new ArtikelDatamapper(context); var all = await dataMapper.GetAll(); Assert.AreEqual(2, all.Count); Assert.IsTrue(all.Any(a => a.Naam == "Fiets Groot")); } }
public async Task InsertBestellingIntoDatabase() { var bestelling = new Bestelling { BestellingStatus = BestellingStatus.GereedVoorBehandeling, KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3), new BestellingItem(2, 5) } }; using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); await mapper.Insert(bestelling); } using (var context = new BeheerContext(_options)) { var mapper = new BestellingDatamapper(context); var result = await mapper.GetBestelling(1); Assert.AreEqual("Hans", result.Klant.Voornaam); Assert.AreEqual("Van Huizen", result.Klant.Achternaam); Assert.AreEqual("1", result.KlantId); Assert.AreEqual("Laagstraat 11", result.AdresRegel1); Assert.AreEqual("Laaghoven", result.Plaats); Assert.AreEqual("1234FG", result.Postcode); Assert.AreEqual(2, result.BesteldeArtikelen.Count); Assert.AreEqual(BestellingStatus.GereedVoorBehandeling, result.BestellingStatus); Assert.IsTrue(result.BesteldeArtikelen.Any(b => b.Artikel.Naam == "Fiets" && b.Aantal == 3)); } }
public async Task VolgendeBestellingInpakkenGivesVolgendeBestellingSetsStatusToInbehandeling() { using (var context = new BeheerContext(options)) { var bestelling = new Bestelling { BestellingStatus = BestellingStatus.GereedVoorBehandeling, KlantId = "1", AdresRegel1 = "Laagstraat 11", Plaats = "Laaghoven", Postcode = "1234FG", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3), new BestellingItem(2, 5) } }; var bestelling2 = new Bestelling { BestellingStatus = BestellingStatus.GereedVoorBehandeling, KlantId = "1", AdresRegel1 = "Hoogstraat 77", Plaats = "Hooghoven", Postcode = "4321FE", BesteldeArtikelen = new List <BestellingItem> { new BestellingItem(1, 3), new BestellingItem(2, 5) } }; var datamapper = new BestellingDatamapper(context); await datamapper.Insert(bestelling); await datamapper.Insert(bestelling2); } var commandPublisher = new CommandPublisher(_context); var result = await commandPublisher.Publish <int>(new VolgendeBestellingCommand(), NameConstants.VolgendeBestellingCommandQueue); Assert.AreEqual(1, result); var result2 = await commandPublisher.Publish <int>(new VolgendeBestellingCommand(), NameConstants.VolgendeBestellingCommandQueue); Assert.AreEqual(2, result2); var resultShouldbeZero = await commandPublisher.Publish <int>(new VolgendeBestellingCommand(), NameConstants.VolgendeBestellingCommandQueue); Assert.AreEqual(0, resultShouldbeZero); using (var context = new BeheerContext(options)) { var bestellingDatamapper = new BestellingDatamapper(context); var bestelling = await bestellingDatamapper.GetBestelling(1); Assert.AreEqual(BestellingStatus.InBehandelingDoorMagazijn, bestelling.BestellingStatus); } }
public void Initialize() { connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); options = new DbContextOptionsBuilder <BeheerContext>() .UseSqlite(connection) .Options; using (var context = new BeheerContext(options)) { context.Database.EnsureCreated(); var artikel = new Artikel { Artikelnummer = 1, Beschrijving = "Grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets", Prijs = 40m, Voorraad = 5 }; var artikel2 = new Artikel { Artikelnummer = 2, Beschrijving = "HELE grote fiets voor iedereen", LeverbaarTot = new DateTime(2018, 5, 5), LeverbaarVanaf = new DateTime(2017, 1, 1), Naam = "Fiets Groot", Prijs = 100m, Voorraad = 8 }; var klant = new Klant { Voornaam = "Hans", Achternaam = "Van Huizen", Id = "1" }; var klantDatamapper = new KlantDatamapper(context); klantDatamapper.Insert(klant); var datamapper = new ArtikelDatamapper(context); datamapper.Insert(artikel); datamapper.Insert(artikel2); } _context = new TestBusContext(); var services = new ServiceCollection(); services.AddTransient <ICommandPublisher, CommandPublisher>(); services.AddSingleton <DbContextOptions>(options); services.AddTransient <BeheerContext, BeheerContext>(); services.AddTransient <IArtikelDatamapper, ArtikelDatamapper>(); services.AddTransient <IBestellingDatamapper, BestellingDatamapper>(); services.AddSingleton <IBusContext <IConnection> >(_context); services.AddTransient <IEventPublisher, EventPublisher>(); services.AddTransient <IKlantDatamapper, KlantDatamapper>(); var builder = new MicroserviceHostBuilder() .RegisterDependencies(services) .WithContext(_context) .AddCommandListener <BestellingListener>() .AddCommandListener <BestellingListenerIntegratieTest>() .AddEventListener <BestellingListener>(); _host = builder.CreateHost(); _host.StartListening(); }