public void DeleteManufacturer_IdIsNotPositive_ExpectArgumentException(int id)
        {
            manufacturers = new List <Manufacturer>()
            {
                new Manufacturer {
                    ManufacturerId = 1
                },
                new Manufacturer {
                    ManufacturerId = 2
                },
                new Manufacturer {
                    ManufacturerId = 3
                },
            };

            Assert.Equal(3, manufacturers.Count);

            IManufacturerService service      = new ManufacturerService(repoMock.Object, null);
            Manufacturer         manufacturer = null;

            var ex = Assert.Throws <ArgumentException>(() =>
            {
                manufacturer = service.DeleteManufacturer(id);
            });

            Assert.Equal(3, manufacturers.Count);
            Assert.Null(manufacturer);
            Assert.Equal("ID of the manufacturer to delete must be a positive integer", ex.Message);

            repoMock.Verify(repo => repo.RemoveManufacturer(It.IsAny <int>()), Times.Never);
        }
        public void DeleteManufacturer_NoManufacturerWithId_ExpectInvalidOperationException(int id)
        {
            manufacturers = new List <Manufacturer>()
            {
                new Manufacturer {
                    ManufacturerId = 2
                },
                new Manufacturer {
                    ManufacturerId = 3
                },
                new Manufacturer {
                    ManufacturerId = 4
                },
            };

            Assert.Equal(3, manufacturers.Count);

            IManufacturerService service      = new ManufacturerService(repoMock.Object, null);
            Manufacturer         manufacturer = null;

            var ex = Assert.Throws <InvalidOperationException>(() =>
            {
                manufacturer = service.DeleteManufacturer(id);
            });

            Assert.Equal(3, manufacturers.Count);
            Assert.Null(manufacturer);
            Assert.Equal("Can not delete manufacturer as no manufacturer with this ID can be found", ex.Message);

            repoMock.Verify(repo => repo.RemoveManufacturer(It.IsAny <int>()), Times.Never);
        }
        public void DeleteManufacturer(int id)
        {
            manufacturers = new List <Manufacturer>()
            {
                new Manufacturer {
                    ManufacturerId = 1
                },
                new Manufacturer {
                    ManufacturerId = 2
                },
                new Manufacturer {
                    ManufacturerId = 3
                },
            };

            Assert.Equal(3, manufacturers.Count);
            Assert.True(manufacturers.Exists(m => m.ManufacturerId == id));

            IManufacturerService service = new ManufacturerService(repoMock.Object, null);

            Manufacturer manufacturer = service.DeleteManufacturer(id);

            Assert.Equal(2, manufacturers.Count);
            Assert.False(manufacturers.Exists(m => m.ManufacturerId == id));

            repoMock.Verify(repo => repo.RemoveManufacturer(It.IsAny <int>()), Times.Once);
        }