Ejemplo n.º 1
0
        public void CreateReservatieTest()
        {
            Openingsuren openingsuren = new Openingsuren()
            {
                Maandag   = "16:00 - 23:00",
                Dinsdag   = "16:00 - 23:00",
                Woensdag  = "16:00 - 23:00",
                Donderdag = "16:00 - 23:00",
                Vrijdag   = "16:00 - 23:00",
                Zaterdag  = "16:00 - 23:00",
                Zondag    = "16:00 - 23:00"
            };
            Adres adres = new Adres()
            {
                Bus          = "A",
                Gemeente     = "Antwerpen",
                Straat       = "Papegaielaan",
                Straatnummer = 10,
                Land         = "België",
                Postcode     = 2000
            };

            Menu menu = new Menu()
            {
                Desserts = new List <Product>()
                {
                    new Product()
                    {
                        Naam  = "Dame Blanche",
                        Prijs = 4.55
                    },
                    new Product()
                    {
                        Naam  = "Brownie",
                        Prijs = 2.40
                    },
                    new Product()
                    {
                        Naam  = "Crème brûlée",
                        Prijs = 10.20
                    }
                },
                Voorgerechten = new List <Product>()
                {
                    new Product()
                    {
                        Naam  = "Kaaskroketten",
                        Prijs = 4.70
                    },
                    new Product()
                    {
                        Naam  = "Lookbroodjes",
                        Prijs = 3.80
                    }
                },
                Hoofdgerechten = new List <Product>()
                {
                    new Product()
                    {
                        Naam  = "Verse zalm met aardappelpuree",
                        Prijs = 23.10
                    },
                    new Product()
                    {
                        Naam  = "Lasagna",
                        Prijs = 19.10
                    },
                    new Product()
                    {
                        Naam  = "Spareribs 250g",
                        Prijs = 34.20
                    }
                },
                Dranken = new List <Product>()
                {
                    new Product()
                    {
                        Naam  = "Sex on the beach",
                        Prijs = 3.45
                    },
                    new Product()
                    {
                        Naam  = "Cognac 5cl",
                        Prijs = 6.50
                    }
                }
            };

            IQueryable <Restaurant> restaurants = new List <Restaurant>()
            {
                new Restaurant()
                {
                    RestaurantId      = 1,
                    KorteBeschrijving = "Het beste italiaanse restaurant met veel verschillende smaken enzovoort...",
                    Openingsuren      = openingsuren,
                    Locatie           = adres,
                    LogoImage         = "https://via.placeholder.com/350x350.png/8b0000/fff?text=Foto van een restaurant",
                    Menu   = menu,
                    Naam   = "Alles van eten",
                    Type   = "Italiaans",
                    Soort  = "Trattoria",
                    Tafels = new List <Tafel>()
                    {
                        new Tafel()
                        {
                            TafelNr = 1, UrenBezet = 3, Zitplaatsen = 5, BezetteMomenten = new List <Tijdsmoment>()
                        },
                        new Tafel()
                        {
                            TafelNr = 2, UrenBezet = 3, Zitplaatsen = 4, BezetteMomenten = new List <Tijdsmoment>()
                        },
                        new Tafel()
                        {
                            TafelNr = 3, UrenBezet = 3, Zitplaatsen = 4, BezetteMomenten = new List <Tijdsmoment>()
                        },
                        new Tafel()
                        {
                            TafelNr = 4, UrenBezet = 3, Zitplaatsen = 2, BezetteMomenten = new List <Tijdsmoment>()
                        },
                        new Tafel()
                        {
                            TafelNr = 5, UrenBezet = 3, Zitplaatsen = 2, BezetteMomenten = new List <Tijdsmoment>()
                        }
                    },
                    IsAdvertentie = true,
                    Gerechten     = "Salade",
                    Reservaties   = new List <Reservatie>()
                }
            }.AsQueryable();


            var reservatie = new Reservatie()
            {
                AantalPersonen = 5,
                Datum          = DateTime.Now.ToString(),
                Email          = "*****@*****.**",
                Restaurant     = restaurants.First(),
                Naam           = "Bob",
                TelefoonNummer = "+32477299417",
                Tijdstip       = "18:00",
                UserId         = "TestUser"
            };

            var mockSet = new Mock <DbSet <Restaurant> >();

            mockSet.As <IQueryable <Restaurant> >().Setup(m => m.Provider).Returns(restaurants.Provider);
            mockSet.As <IQueryable <Restaurant> >().Setup(m => m.Expression).Returns(restaurants.Expression);
            mockSet.As <IQueryable <Restaurant> >().Setup(m => m.ElementType).Returns(restaurants.ElementType);
            mockSet.As <IQueryable <Restaurant> >().Setup(m => m.GetEnumerator()).Returns(restaurants.GetEnumerator());

            var mockContext = new Mock <DatabaseContext>();

            mockContext.Setup(m => m.Restaurants).Returns(mockSet.Object);

            var repo = new RestaurantRepository(mockContext.Object);

            repo.AddReservatie(reservatie);

            // Assert
            Assert.AreEqual(mockContext.Object.Restaurants.First().Reservaties.Count(), 1);
        }