public void DeleteStyleClassWorksOnExistingStyleClass()
        {
            Mock <IStyleClassRepository> mockStyleClassRepository = new Mock <IStyleClassRepository>();
            IStyleClassManagementService styleClassLogic          = new StyleClassManagementService
            {
                StyleClassRepository = mockStyleClassRepository.Object
            };

            StyleClass fakeStyleClass = new StyleClass
            {
                Name = "Al Bacalao"
            };

            mockStyleClassRepository
            .Setup(wl => wl.Exists(fakeStyleClass.Name))
            .Returns(true);
            mockStyleClassRepository
            .Setup(wl => wl.GetAll())
            .Returns(GetFakeStyleClasses());


            styleClassLogic.Delete(fakeStyleClass.Name);

            mockStyleClassRepository.VerifyAll();
        }
        public void GetStyleClassWorksOnExistingStyleClass()
        {
            Mock <IStyleClassRepository> mockStyleClassRepository = new Mock <IStyleClassRepository>();
            IStyleClassManagementService styleClassLogic          = new StyleClassManagementService
            {
                StyleClassRepository = mockStyleClassRepository.Object
            };

            StyleClass fakeStyleClass = new StyleClass
            {
                Name = "Al Bacalao"
            };

            mockStyleClassRepository
            .Setup(wl => wl.Exists(fakeStyleClass.Name))
            .Returns(true);
            mockStyleClassRepository
            .Setup(wl => wl.GetByName(fakeStyleClass.Name))
            .Returns(fakeStyleClass);

            StyleClass result = styleClassLogic.GetByName(fakeStyleClass.Name);

            mockStyleClassRepository.VerifyAll();
            Assert.IsNotNull(result);
            Assert.AreEqual(fakeStyleClass, result);
        }
        public void TestGetAllStyleClassesCallsRepositoryGetAll()
        {
            Mock <IStyleClassRepository> mockStyleClassRepository = new Mock <IStyleClassRepository>();
            IStyleClassManagementService styleClassLogic          = new StyleClassManagementService
            {
                StyleClassRepository = mockStyleClassRepository.Object
            };

            IEnumerable <StyleClass> fakeStyleClasses = GetFakeStyleClasses();

            mockStyleClassRepository
            .Setup(wl => wl.GetAll())
            .Returns(fakeStyleClasses);

            IEnumerable <StyleClass> results = styleClassLogic.GetAll();

            mockStyleClassRepository.VerifyAll();
            Assert.IsNotNull(results);
            Assert.IsTrue(fakeStyleClasses.SequenceEqual(results));
        }
        public void TestAddStyleClassFailsOnExistingStyleClass()
        {
            Mock <IStyleClassRepository> mockStyleClassRepository = new Mock <IStyleClassRepository>();
            IStyleClassManagementService styleClassLogic          = new StyleClassManagementService
            {
                StyleClassRepository = mockStyleClassRepository.Object
            };

            StyleClass fakeStyleClass = new StyleClass
            {
                Name = "Al Bacalao"
            };

            mockStyleClassRepository
            .Setup(wl => wl.Exists(fakeStyleClass.Name))
            .Returns(true);

            StyleClass result = styleClassLogic.Add(fakeStyleClass);

            mockStyleClassRepository.VerifyAll();
        }
        public void TestAddStyleClassFailsOnRedundantDependency()
        {
            Mock <IStyleClassRepository> mockStyleClassRepository = new Mock <IStyleClassRepository>();
            IStyleClassManagementService styleClassLogic          = new StyleClassManagementService
            {
                StyleClassRepository = mockStyleClassRepository.Object
            };

            StyleClass fakeStyleClass = new StyleClass
            {
                Name = "Al Bacalao"
            };

            fakeStyleClass.BasedOn = fakeStyleClass;

            mockStyleClassRepository
            .Setup(wl => wl.Exists(fakeStyleClass.Name))
            .Returns(false);

            StyleClass result = styleClassLogic.Add(fakeStyleClass);

            mockStyleClassRepository.VerifyAll();
        }