public void Get_ShouldReturnCorrectBrand()
        {
            //Arrange
            var testBrand = BrandBuilderBuilder.GetTestBrand();
            var mock      = new Mock <IBrandRepository>();
            var service   = new BrandService(mock.Object);

            //Act
            mock.Setup(repo => repo.Select(testBrand.Id)).Returns(testBrand);
            var result = service.Get(testBrand.Id);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(testBrand.Id, result.Id);
        }
        public void GetAllBrands_ShouldReturnAllBrands()
        {
            //Arrange
            var testBrands = BrandBuilderBuilder.GetTestBrands();
            var mock       = new Mock <IBrandService>();

            //Act
            mock.Setup(p => p.Get()).Returns(testBrands);
            var controller = new BrandsController(mock.Object);
            var result     = controller.Get() as OkObjectResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(200, result.StatusCode);
        }
        public void Post_ShouldReturnCreatedProduct()
        {
            //Arrange
            var testBrand = BrandBuilderBuilder.GetTestBrand();
            var mock      = new Mock <IBrandRepository>();
            var service   = new BrandService(mock.Object);

            //Act
            mock.Setup(repo => repo.Insert(testBrand));
            var result = service.Post <BrandValidator>(testBrand);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(testBrand.Id, result.Id);
            Assert.IsInstanceOfType(result, typeof(Brand));
        }
        public void Put_ShouldReturnOk()
        {
            //Arrange
            var testBrand  = BrandBuilderBuilder.GetTestBrand();
            var mock       = new Mock <IBrandService>();
            var controller = new BrandsController(mock.Object);

            //Act
            mock.Setup(p => p.Put <BrandValidator>(testBrand)).Returns(testBrand);
            var result = controller.Put(testBrand) as OkObjectResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(200, result.StatusCode);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
        }
        public void Get_ShouldReturnCorrectBrand()
        {
            //Arrange
            Brand testBrand = new Brand();

            testBrand = BrandBuilderBuilder.GetTestBrand();
            var mock       = new Mock <IBrandService>();
            var controller = new BrandsController(mock.Object);

            //Act
            mock.Setup(p => p.Get(1)).Returns(testBrand);
            var result = controller.Get(1) as OkObjectResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(testBrand, result.Value);
        }
        public void Delete_ShouldDeleteBrand()
        {
            //Arrange
            var testBrand = BrandBuilderBuilder.GetTestBrand();
            var mock      = new Mock <IBrandRepository>();
            var service   = new BrandService(mock.Object);

            //Act
            mock.Setup(repo => repo.Delete(testBrand.Id));

            try
            {
                service.Delete(testBrand.Id);
                Assert.IsTrue(true);
            }
            catch
            {
                Assert.IsTrue(false);
            }
        }