public async Task GetKlantByIdReturnsKlant() { var klant = new Klant { Id = "1", Voornaam = "Hans", Achternaam = "van Huizen", AdresRegel = "Voorstraat 8", Plaats = "Groningen", Postcode = "1345df", Telefoonnummer = "0665234365", }; using (var context = new WebshopContext(options)) { var dataMapper = new KlantDatamapper(context); dataMapper.Insert(klant); } using (var context = new WebshopContext(options)) { var klantmapper = new KlantDatamapper(context); var result = await klantmapper.GetKlant("1"); Assert.IsNotNull(result); Assert.AreEqual("Hans", result.Voornaam); Assert.AreEqual("van Huizen", result.Achternaam); Assert.AreEqual("Voorstraat 8", result.AdresRegel); Assert.AreEqual("Groningen", result.Plaats); Assert.AreEqual("1345df", result.Postcode); Assert.AreEqual("0665234365", result.Telefoonnummer); } }
public async Task InsertAddsKlantToDatabase() { var klant = new Klant { Id = "1", Voornaam = "Hans", Achternaam = "van Huizen", AdresRegel = "Voorstraat 8", Plaats = "Groningen", Postcode = "1345df", Telefoonnummer = "0665234365" }; using (var context = new KlantContext(_options)) { var dataMapper = new KlantDatamapper(context); await dataMapper.Insert(klant); } using (var context = new KlantContext(_options)) { var result = context.Klanten.SingleOrDefault(a => a.Id == "1"); Assert.IsNotNull(result); Assert.AreEqual("Hans", result.Voornaam); Assert.AreEqual("van Huizen", result.Achternaam); Assert.AreEqual("Voorstraat 8", result.AdresRegel); Assert.AreEqual("Groningen", result.Plaats); Assert.AreEqual("1345df", result.Postcode); Assert.AreEqual("0665234365", result.Telefoonnummer); } }
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 void Initialize() { _connection = new SqliteConnection("DataSource=:memory:"); _connection.Open(); _options = new DbContextOptionsBuilder <WebshopContext>() .UseSqlite(_connection) .Options; using (var context = new WebshopContext(_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 = 100.50m, 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 = 600.50m, Voorraad = 8 }; var klant = new Klant { Voornaam = "Hans", Achternaam = "Van Huizen", Id = "1", Telefoonnummer = "0612341234", AdresRegel = "Grote straat 1", Email = "*****@*****.**", Plaats = "Groningen", Postcode = "6123AA", Wachtwoord = "Geheim_101" }; using (var context = new WebshopContext(_options)) { var klantDatamapper = new KlantDatamapper(context); klantDatamapper.Insert(klant); var dataMapper = new ArtikelDatamapper(context); dataMapper.Insert(artikel); dataMapper.Insert(artikel2); } }
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 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 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 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 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 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 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(); }