public void GetProducerBy_ShouldCallRepository_WhenValidParametersPassed()
        {
            var name = "Steven Spielberg";
            var producerRepositoryMock = new Mock <IRepository <Producer> >();
            var unitOfWorkMock         = new Mock <IUnitOfWork>();
            var producerFactoryMock    = new Mock <IProducerFactory>();
            var producerService        = new ProducerService(
                producerRepositoryMock.Object, unitOfWorkMock.Object, producerFactoryMock.Object);

            producerService.GetProducerBy(name);

            producerRepositoryMock.Verify(r => r.Entities, Times.Once);
        }
        public void GetProducerBy_ShouldReturnCorrectProducer_WhenValidParametersPassed()
        {
            var name = "Steven Spielberg";
            var producerRepositoryMock = new Mock <IRepository <Producer> >();
            var unitOfWorkMock         = new Mock <IUnitOfWork>();
            var producerFactoryMock    = new Mock <IProducerFactory>();
            var producer = new Producer(name);
            var list     = new List <Producer>()
            {
                producer
            };
            var queryableProducers = list.AsQueryable();

            producerRepositoryMock.Setup(r => r.Entities).Returns(queryableProducers);
            var producerService = new ProducerService(
                producerRepositoryMock.Object, unitOfWorkMock.Object, producerFactoryMock.Object);

            var returnedProducer = producerService.GetProducerBy(name);

            Assert.AreSame(producer, returnedProducer);
        }