public void Remove_Cactus()
        {
            var data = new List <Cactus>()
            {
                new Cactus {
                    Id = 1, Name = "Cactus1"
                },
                new Cactus {
                    Id = 2, Name = "Cactus2"
                },
                new Cactus {
                    Id = 3, Name = "Cactus3"
                },
            }.AsQueryable();

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

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

            var mockContext = new Mock <GardenContext>();

            mockContext.Setup(x => x.Cactuses).Returns(mockSet.Object);

            var business = new CactusBusiness(mockContext.Object);
            var cactuses = business.GetAllCactuses();

            int deletedCactusId = 1; business.Delete(cactuses[0].Id);

            Assert.IsNull(business.GetAllCactuses().FirstOrDefault(x => x.Id == deletedCactusId));
        }
        public void Gives_All_Flowers()
        {
            var data = new List <Cactus>
            {
                new Cactus {
                    Name = "First"
                },
                new Cactus {
                    Name = "Second"
                },
                new Cactus {
                    Name = "Third"
                },
            }.AsQueryable();

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

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

            var mockContext = new Mock <GardenContext>();

            mockContext.Setup(c => c.Cactuses).Returns(mockSet.Object);
            var business = new CactusBusiness(mockContext.Object);
            var Cactuses = business.GetAllCactuses();

            Assert.AreEqual(3, Cactuses.Count);
            Assert.AreEqual("First", Cactuses[0].Name);
            Assert.AreEqual("Second", Cactuses[1].Name);
            Assert.AreEqual("Third", Cactuses[2].Name);
        }
        private void ListAllCactuses()
        {
            Console.WriteLine(new string('-', 40));
            Console.WriteLine(new string(' ', 16) + "Cactus" + new string(' ', 16));
            Console.WriteLine(new string('-', 40));
            var cactuses = cactusBusiness.GetAllCactuses();

            foreach (var cactus in cactuses)
            {
                var Seasons = cactusBusiness.GetSeason(cactus.Name);
                Console.WriteLine($"{cactus.Id} - {cactus.Name}, {cactus.Height}, {cactus.Thorns}, {Seasons.Name}");
            }
            Console.WriteLine(new string('-', 40));
        }