public void ChangeVoorraadChangesVoorraadOfArtikel()
        {
            var artikel = new Artikel
            {
                AfbeeldingUrl   = "Afbeelding.jpg",
                Artikelnummer   = 1234,
                Beschrijving    = "Grote fiets voor iedereen",
                Leverancier     = "Fietsen bv",
                Leveranciercode = "1",
                LeverbaarTot    = new DateTime(2019, 8, 8),
                LeverbaarVanaf  = new DateTime(2017, 3, 3),
                Naam            = "Fiets",
                Prijs           = 299.3m
            };

            using (var context = new WebshopContext(options))
            {
                var dataMapper = new ArtikelDatamapper(context);
                dataMapper.Insert(artikel);
            }

            using (var context = new WebshopContext(options))
            {
                var dataMapper = new ArtikelDatamapper(context);
                dataMapper.ChangeVoorraad(1234, 10);
            }

            using (var context = new WebshopContext(options))
            {
                var result = context.Artikelen.SingleOrDefault(a => a.Artikelnummer == 1234);
                Assert.IsNotNull(result);
                Assert.AreEqual("Fiets", result.Naam);
                Assert.AreEqual(10, result.Voorraad);
            }
        }
Example #2
0
        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 InsertAddsArtikelToDatabase()
        {
            var artikel = new Artikel
            {
                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
            };

            using (var context = new WebshopContext(options))
            {
                var dataMapper = new ArtikelDatamapper(context);
                dataMapper.Insert(artikel);
            }

            using (var context = new WebshopContext(options))
            {
                var artikelDatamapper = new ArtikelDatamapper(context);
                var result            = await artikelDatamapper.Get(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 <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);
            }
        }
Example #5
0
        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 GetAllArtikelenReturnsAll()
        {
            var artikel = new Artikel
            {
                AfbeeldingUrl   = "Afbeelding.jpg",
                Artikelnummer   = 1,
                Beschrijving    = "Grote fiets voor iedereen",
                Leverancier     = "Fietsen bv",
                Leveranciercode = "1",
                LeverbaarTot    = new DateTime(2019, 8, 8),
                LeverbaarVanaf  = new DateTime(2017, 3, 3),
                Naam            = "Fiets",
                Prijs           = 299.3m
            };

            var artikel2 = new Artikel
            {
                AfbeeldingUrl   = "Afbeelding.jpg",
                Artikelnummer   = 2,
                Beschrijving    = "Ultra zacht zadel voor de meest comfortabele fietstocht",
                Leverancier     = "FietszadelsWinkel",
                Leveranciercode = "3",
                LeverbaarTot    = new DateTime(2019, 8, 8),
                LeverbaarVanaf  = new DateTime(2017, 3, 3),
                Naam            = "Zadel",
                Prijs           = 19.49m
            };

            using (var context = new WebshopContext(options))
            {
                var dataMapper = new ArtikelDatamapper(context);
                dataMapper.Insert(artikel);
                dataMapper.Insert(artikel2);
            }
            using (var context = new WebshopContext(options))
            {
                var dataMapper = new ArtikelDatamapper(context);
                var artikelen  = await dataMapper.GetAll();

                Assert.AreEqual(2, artikelen.Count);
                Assert.IsTrue(artikelen.Any(a => a.Artikelnummer == 2 && a.Naam == "Zadel" && a.PrijsWithBtw == 23.58m));
                Assert.IsTrue(artikelen.Any(a => a.Artikelnummer == 1 && a.Naam == "Fiets" && a.PrijsWithBtw == 362.15m));
            }
        }
Example #7
0
        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)
                }
            };
        }
Example #8
0
        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"));
            }
        }
Example #9
0
        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();
        }