public void GetCourseByNameTest()
        {
            Mock <ICourseDetails>  courseDetails = new Mock <ICourseDetails>(MockBehavior.Strict);
            Mock <IConverterToDTO> converter     = new Mock <IConverterToDTO>(MockBehavior.Strict);

            courseDetails
            .Setup(cd => cd.GetCourseByName(courses[0].Name))
            .Returns(courses[0]);

            converter
            .Setup(c => c.ConvertToCourseDTO(It.IsIn <Course>(courses)))
            .Returns(new CourseDTO());

            var sut = new CourseDetailsBll(
                courseDetails.Object,
                converter.Object);

            var course = courses[0];
            var actual = sut.GetCourseByName(course.Name);

            courseDetails.Verify(
                cd => cd.GetCourseByName(course.Name), Times.Once);
            converter.Verify(
                c => c.ConvertToCourseDTO(
                    It.IsAny <Course>()),
                Times.Once);
        }
        public void GetAllPaidDecksTest()
        {
            Mock <ICourseDetails>  courseDetails = new Mock <ICourseDetails>(MockBehavior.Strict);
            Mock <IConverterToDTO> converter     = new Mock <IConverterToDTO>(MockBehavior.Strict);

            courseDetails
            .Setup(cd => cd.GetAllPaidDecks())
            .Returns(decks.Where(d => d.Price > 0).ToList());
            converter
            .Setup(c => c.ConvertToDeckListDTO(It.IsAny <IEnumerable <Deck> >()))
            .Returns(new List <DeckDTO>());

            var sut = new CourseDetailsBll(
                courseDetails.Object,
                converter.Object);

            var expected = decks.Where(d => d.Price > 0);
            var actual   = sut.GetAllPaidDecks();

            courseDetails.Verify(
                cd => cd.GetAllPaidDecks(), Times.Once);
            converter.Verify(
                c => c.ConvertToDeckListDTO(
                    It.IsAny <IEnumerable <Deck> >()),
                Times.Once);
        }
        public void GetDeckPriceTest()
        {
            Mock <ICourseDetails> courseDetails = new Mock <ICourseDetails>(MockBehavior.Strict);

            courseDetails
            .Setup(cd => cd.GetDeckPrice(decks[0].Id))
            .Returns(decks[0].Price);
            var sut = new CourseDetailsBll(
                courseDetails.Object,
                null);

            var deck     = decks[0];
            var expected = deck.Price;
            var actual   = sut.GetDeckPrice(deck.Id);

            Assert.AreEqual(expected, actual);
            courseDetails.Verify(
                cd => cd.GetDeckPrice(deck.Id), Times.Once);
        }