public void AddFlavorShouldReturnTrueIfRepositoryHasNoExceptions()
        {
            // Arrange
            var mock = new Mock <IPizzaFlavorRepository>();

            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);
            var mockCustomer = Builder <PizzaFlavorAddModel> .CreateNew().Build();

            // Act
            var result = Service.Add(mockCustomer);

            // Assert
            Assert.IsTrue(result);
        }
        public void DeleteFlavorByIdShouldReturnTrueIfRepositoryThrowsNoExceptions()
        {
            // Arrange
            var mock   = new Mock <IPizzaFlavorRepository>();
            var mockId = Guid.NewGuid();

            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);

            // Act
            var result = Service.Delete(mockId);

            // Assert
            Assert.IsTrue(result);
        }
        public void ListFlavorsShouldReturnEmptyEnumerableIfRepositoryThrowsExceptions()
        {
            // Arrange
            var mock = new Mock <IPizzaFlavorRepository>();

            mock.Setup <IEnumerable <PizzaFlavor> >(_ => _.List())
            .Throws <Exception>();
            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);

            // Act
            var result = Service.List();

            // Assert
            Assert.AreEqual(0, result.Count());
        }
        public void AddFlavorShouldReturnFalseIfRepositoryHasExceptions()
        {
            // Arrange
            var mock = new Mock <IPizzaFlavorRepository>();

            mock.Setup(_ => _.CreateNewFlavor(It.IsAny <PizzaFlavor>()))
            .Throws <Exception>();
            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);
            var mockAddModel = Builder <PizzaFlavorAddModel> .CreateNew().Build();

            // Act
            var result = Service.Add(mockAddModel);

            // Assert
            Assert.IsFalse(result);
        }
        public void GetFlavorByIdShouldReturnNullIfRepositoryThrowsExceptions()
        {
            // Arrange
            var mock   = new Mock <IPizzaFlavorRepository>();
            var mockId = Guid.NewGuid();

            mock.Setup <PizzaFlavor>(_ => _.GetFlavorById(mockId))
            .Throws <Exception>();
            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);

            // Act
            var result = Service.Get(mockId);

            // Assert
            Assert.AreEqual(null, result);
        }
        public void ListFlavorsShouldReturnTheSameDataIfRepositoryReturnsData()
        {
            // Arrange
            var mock     = new Mock <IPizzaFlavorRepository>();
            var mockData = Builder <PizzaFlavor> .CreateListOfSize(100).Build();

            mock.Setup <IEnumerable <PizzaFlavor> >(_ => _.List())
            .Returns(mockData);
            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);

            // Act
            var result = Service.List();
            var same   = mockData.All(_ => result.Any(model =>
                                                      model.FlavorName == _.FlavorName));

            // Assert
            Assert.IsTrue(same);
        }
        public void GetFlavorByIdShouldReturnTheSameDataIfRepositoryReturnsData()
        {
            // Arrange
            var mock     = new Mock <IPizzaFlavorRepository>();
            var mockId   = Guid.NewGuid();
            var mockData = Builder <PizzaFlavor> .CreateNew().Build();

            mock.Setup <PizzaFlavor>(_ => _.GetFlavorById(mockId))
            .Returns(mockData);
            Repository = mock.Object;
            Service    = new PizzaFlavorService(Repository);

            // Act
            var  result = Service.Get(mockId);
            bool same   = mockData.FlavorName == result.FlavorName;

            // Assert
            Assert.IsTrue(same);
        }