Пример #1
0
        public void Delete_ThrowsArgumentException_WhenSuppliersAreRelatedToTheCity()
        {
            // Arrange
            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1
                },
                new City {
                    Name = "TestCity2", Id = 2
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", CityId = 1
                }
            }.AsQueryable();

            var citymockDbSet = new Mock <DbSet <City> >();

            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var suppliermockDbSet = new Mock <DbSet <Supplier> >();

            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(citymockDbSet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(suppliermockDbSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act & Assert
            try
            {
                int idToDelete = 1;
                cityBusiness.Delete(idToDelete);
                Assert.Fail("No exception was thrown.");
            }
            catch (ArgumentException ex)
            {
                string expectedMessage = string.Format("One or more suppliers are related to this city.");
                Assert.AreEqual(expectedMessage, ex.Message, "Wrong exception was thrown.");
            }
        }
Пример #2
0
        public void Delete_SuccessfullyDeletesCity_WhenNoSuppliersAreRelated()
        {
            // Arrange
            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1
                },
                new City {
                    Name = "TestCity2", Id = 2
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", CityId = 1
                }
            }.AsQueryable();

            var citymockDbSet = new Mock <DbSet <City> >();

            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var suppliermockDbSet = new Mock <DbSet <Supplier> >();

            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(citymockDbSet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(suppliermockDbSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act
            int idToDelete = 2;

            cityBusiness.Delete(idToDelete);

            // Assert
            citymockDbSet.Verify(m => m.Remove(It.IsAny <City>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }