예제 #1
0
        public async Task GetAllTest()
        {
            var studios = new List <Studio>
            {
                new Studio()
                {
                    Name = "Studio One"
                },
                new Studio()
                {
                    Name = "Studio Two"
                }
            };

            var fakeRepositoryMock = new Mock <IStudioRepository>();

            fakeRepositoryMock.Setup(x => x.GetAll()).ReturnsAsync(studios);

            var studioService = new StudioService(fakeRepositoryMock.Object);

            var resultStudios = await studioService.GetStudios();

            Assert.Collection(resultStudios, studio =>
            {
                Assert.Equal("Studio One", studio.Name);
            },
                              studio =>
            {
                Assert.Equal("Studio Two", studio.Name);
            });
        }
예제 #2
0
        public async Task DeleteTest()
        {
            var fakeRepository = Mock.Of <IStudioRepository>();
            var studioService  = new StudioService(fakeRepository);

            int studioId = 1;
            await studioService.DeleteAndSave(studioId);
        }
예제 #3
0
        public async Task UpdateTest()
        {
            var fakeRepository = Mock.Of <IStudioRepository>();
            var studioService  = new StudioService(fakeRepository);

            var studio = new Studio()
            {
                Name = "Test Studio"
            };
            await studioService.UpdateAndSave(studio);
        }
예제 #4
0
        public void GetStudioByName_ShouldCallRepository_WhenParametersAreCorrect(string name)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();

            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);

            service.GetStudioByName(name);

            repositoryMock.Verify(r => r.Entities, Times.Once);
        }
예제 #5
0
        public void UpdateStudio_ShouldCallUnitOfWork_WhenParametersAreCorrect()
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();
            var studioMock     = new Mock <Studio>();
            var service        = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);

            service.UpdateStudio(studioMock.Object);

            unitOfWorkMock.Verify(r => r.Commit(), Times.Once);
        }
예제 #6
0
        public void CreateStudio_ShouldCallFactory_WhenParametersAreCorrect(string name, string address)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();

            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);

            service.CreateStudio(name, address);

            factoryMock.Verify(f => f.CreateStudio(name, address), Times.Once);
        }
예제 #7
0
        public void DeleteStudio_ShouldThrowException_WhenNoStudioIsFound(string name)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();

            var listOfStudios = new List <Studio>();

            repositoryMock.Setup(r => r.Entities).Returns(listOfStudios.AsQueryable <Studio>);
            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);

            Assert.Throws <NullReferenceException>(() => service.DeleteStudio(name));
        }
예제 #8
0
        static void Main(string[] args)
        {
            var           context = new MusicDbContextProvider();
            StudioService ss      = new StudioService(context);
            Studio        a       = new Studio {
                Id = 1, Title = "Sunny Records", Address = "Hollywood, 1", Phone = 88005553535
            };

            ss.AddStudio(a);
            a = ss.GetStudioById(1);
            Console.WriteLine(a.Title);
            Console.ReadKey();
        }
예제 #9
0
        public void DirectorExistsTest()
        {
            int studioId = 1;

            var fakeRepositoryMock = new Mock <IStudioRepository>();

            fakeRepositoryMock.Setup(x => x.StudioExists(studioId)).Returns(true);

            var studioService = new StudioService(fakeRepositoryMock.Object);

            var isExist = studioService.StudioExists(studioId);

            Assert.True(isExist);
        }
예제 #10
0
        public void CreateStudio_ShouldReturnTheSameStudio_WhenParametersAreCorrect(string name, string address)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();
            var studioMock     = new Mock <Studio>();

            factoryMock.Setup(f => f.CreateStudio(name, address)).Returns(studioMock.Object);

            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);
            var result  = service.CreateStudio(name, address);

            Assert.AreSame(studioMock.Object, result);
        }
예제 #11
0
		public async void Get_null_record()
		{
			var mock = new ServiceMockFacade<IStudioRepository>();
			mock.RepositoryMock.Setup(x => x.Get(It.IsAny<int>())).Returns(Task.FromResult<Studio>(null));
			var service = new StudioService(mock.LoggerMock.Object,
			                                mock.RepositoryMock.Object,
			                                mock.ModelValidatorMockFactory.StudioModelValidatorMock.Object,
			                                mock.BOLMapperMockFactory.BOLStudioMapperMock,
			                                mock.DALMapperMockFactory.DALStudioMapperMock);

			ApiStudioResponseModel response = await service.Get(default(int));

			response.Should().BeNull();
			mock.RepositoryMock.Verify(x => x.Get(It.IsAny<int>()));
		}
예제 #12
0
        public void GetStudioByName_ShouldReturnCorrectStudio_WhenParametersAreCorrect(string name)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();
            var listOfStudios  = new List <Studio>();
            var studio         = new Studio(name, null);

            listOfStudios.Add(studio);
            repositoryMock.Setup(r => r.Entities).Returns(listOfStudios.AsQueryable);

            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);
            var result  = service.GetStudioByName(name);

            Assert.AreSame(studio, result);
        }
예제 #13
0
        public void AddStudios_ShouldCallUnitOfWorkCommitMethod_WhenValidListIsPassed()
        {
            var studioRepositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock       = new Mock <IUnitOfWork>();
            var studioFactoryMock    = new Mock <IStudioFactory>();
            var studioService        = new StudioService(
                studioRepositoryMock.Object, unitOfWorkMock.Object, studioFactoryMock.Object);
            var studios = new List <Studio>
            {
                new Studio("Fox", null),
                new Studio("Disney", null)
            };

            studioService.AddStudios(studios);

            unitOfWorkMock.Verify(n => n.Commit(), Times.Once);
        }
예제 #14
0
		public async void Create()
		{
			var mock = new ServiceMockFacade<IStudioRepository>();
			var model = new ApiStudioRequestModel();
			mock.RepositoryMock.Setup(x => x.Create(It.IsAny<Studio>())).Returns(Task.FromResult(new Studio()));
			var service = new StudioService(mock.LoggerMock.Object,
			                                mock.RepositoryMock.Object,
			                                mock.ModelValidatorMockFactory.StudioModelValidatorMock.Object,
			                                mock.BOLMapperMockFactory.BOLStudioMapperMock,
			                                mock.DALMapperMockFactory.DALStudioMapperMock);

			CreateResponse<ApiStudioResponseModel> response = await service.Create(model);

			response.Should().NotBeNull();
			mock.ModelValidatorMockFactory.StudioModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny<ApiStudioRequestModel>()));
			mock.RepositoryMock.Verify(x => x.Create(It.IsAny<Studio>()));
		}
예제 #15
0
		public async void All()
		{
			var mock = new ServiceMockFacade<IStudioRepository>();
			var records = new List<Studio>();
			records.Add(new Studio());
			mock.RepositoryMock.Setup(x => x.All(It.IsAny<int>(), It.IsAny<int>())).Returns(Task.FromResult(records));
			var service = new StudioService(mock.LoggerMock.Object,
			                                mock.RepositoryMock.Object,
			                                mock.ModelValidatorMockFactory.StudioModelValidatorMock.Object,
			                                mock.BOLMapperMockFactory.BOLStudioMapperMock,
			                                mock.DALMapperMockFactory.DALStudioMapperMock);

			List<ApiStudioResponseModel> response = await service.All();

			response.Should().HaveCount(1);
			mock.RepositoryMock.Verify(x => x.All(It.IsAny<int>(), It.IsAny<int>()));
		}
예제 #16
0
        public void AddStudios_ShouldCallRepositoryAddMethod_WhenValidListIsPassed()
        {
            var studioRepositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock       = new Mock <IUnitOfWork>();
            var studioFactoryMock    = new Mock <IStudioFactory>();
            var studioService        = new StudioService(
                studioRepositoryMock.Object, unitOfWorkMock.Object, studioFactoryMock.Object);
            var studios = new List <Studio>
            {
                new Studio("Fox", null),
                new Studio("Disney", null)
            };

            studioService.AddStudios(studios);

            studioRepositoryMock.Verify(s => s.Add(It.IsAny <Studio>()), Times.Exactly(studios.Count));
        }
예제 #17
0
		public async void Delete()
		{
			var mock = new ServiceMockFacade<IStudioRepository>();
			var model = new ApiStudioRequestModel();
			mock.RepositoryMock.Setup(x => x.Delete(It.IsAny<int>())).Returns(Task.CompletedTask);
			var service = new StudioService(mock.LoggerMock.Object,
			                                mock.RepositoryMock.Object,
			                                mock.ModelValidatorMockFactory.StudioModelValidatorMock.Object,
			                                mock.BOLMapperMockFactory.BOLStudioMapperMock,
			                                mock.DALMapperMockFactory.DALStudioMapperMock);

			ActionResponse response = await service.Delete(default(int));

			response.Should().NotBeNull();
			mock.RepositoryMock.Verify(x => x.Delete(It.IsAny<int>()));
			mock.ModelValidatorMockFactory.StudioModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny<int>()));
		}
예제 #18
0
        public void DeleteStudio_ShouldCallEntitiesOfReository_WhenParametersAreCorrect(string name)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();

            var listOfStudios = new List <Studio>();

            listOfStudios.Add(new Studio(name, null));

            repositoryMock.Setup(r => r.Entities).Returns(listOfStudios.AsQueryable <Studio>);
            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);

            service.DeleteStudio(name);

            repositoryMock.Verify(r => r.Entities, Times.Once);
        }
예제 #19
0
        public void DeleteStudio_ShouldCallUnitOfWork_WhenStudioIsFound(string name)
        {
            var repositoryMock = new Mock <IRepository <Studio> >();
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var factoryMock    = new Mock <IStudioFactory>();
            var studio         = new Studio(name, null);
            var listOfStudios  = new List <Studio>();

            listOfStudios.Add(studio);
            repositoryMock.Setup(r => r.Entities).Returns(listOfStudios.AsQueryable <Studio>);

            var service = new StudioService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object);

            service.DeleteStudio(name);

            unitOfWorkMock.Verify(u => u.Commit(), Times.Once);
        }
예제 #20
0
        private ObservableCollection <IProgressHeaderItem> CreatePages(IWizardModel wizardModel)
        {
            var packageService = new PackageService(_eventAggregatorService);
            var studioService  = new StudioService(_projectsController);
            var dialogService  = new DialogService();
            var projectService = new ProjectService(_eventAggregatorService);

            var shortStudioVersion = _studioVersionService.GetStudioVersion()?.ShortVersion;
            var projectsPath       = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                                                  $@"Studio {shortStudioVersion}\Projects\projects.xml");

            return(new ObservableCollection <IProgressHeaderItem>
            {
                new PackageDetailsViewModel(wizardModel, packageService, dialogService, studioService, projectsPath, _eventAggregatorService, new PackageDetails()),
                new TmsViewModel(wizardModel, dialogService, new Tms()),
                new CreateProjectViewModel(wizardModel, projectService, _eventAggregatorService, new CreateProject())
            });
        }
예제 #21
0
        public async Task GetGenreTest()
        {
            int studioId = 1;
            var studio   = new Studio()
            {
                StudioId = studioId, Name = "Studio One"
            };

            var fakeRepositoryMock = new Mock <IStudioRepository>();

            fakeRepositoryMock.Setup(x => x.GetStudio(studioId)).ReturnsAsync(studio);

            var studioService = new StudioService(fakeRepositoryMock.Object);

            var resultStudio = await studioService.GetStudio(studioId);

            Assert.Equal("Studio One", resultStudio.Name);
        }
예제 #22
0
        public async void Delete_NoErrorsOccurred_ShouldReturnResponse()
        {
            var mock  = new ServiceMockFacade <IStudioService, IStudioRepository>();
            var model = new ApiStudioServerRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.CompletedTask);
            var service = new StudioService(mock.LoggerMock.Object,
                                            mock.MediatorMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.StudioModelValidatorMock.Object,
                                            mock.DALMapperMockFactory.DALStudioMapperMock);

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            response.Success.Should().BeTrue();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <int>()));
            mock.ModelValidatorMockFactory.StudioModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <StudioDeletedNotification>(), It.IsAny <CancellationToken>()));
        }
예제 #23
0
        public async void Delete_ErrorsOccurred_ShouldReturnErrorResponse()
        {
            var mock          = new ServiceMockFacade <IStudioService, IStudioRepository>();
            var model         = new ApiStudioServerRequestModel();
            var validatorMock = new Mock <IApiStudioServerRequestModelValidator>();

            validatorMock.Setup(x => x.ValidateDeleteAsync(It.IsAny <int>())).Returns(Task.FromResult(new FluentValidation.Results.ValidationResult(new List <ValidationFailure>()
            {
                new ValidationFailure("text", "test")
            })));
            var service = new StudioService(mock.LoggerMock.Object,
                                            mock.MediatorMock.Object,
                                            mock.RepositoryMock.Object,
                                            validatorMock.Object,
                                            mock.DALMapperMockFactory.DALStudioMapperMock);

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            response.Success.Should().BeFalse();
            validatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <StudioDeletedNotification>(), It.IsAny <CancellationToken>()), Times.Never());
        }
 public MastersController()
 {
     studioService = new StudioService();
 }
예제 #25
0
 public StudioController(StudioService studioService)
 {
     this.studioService = studioService;
 }
 public MoviesController(MovieService movieService, DirectorService directorService, StudioService studioService)
 {
     _movieService    = movieService;
     _directorService = directorService;
     _studioService   = studioService;
 }
예제 #27
0
 public ServiceController()
 {
     studioService = new StudioService();
 }
예제 #28
0
 public ExampleController()
 {
     studioService = new StudioService();
 }
 public StudiosController(StudioService studioService)
 {
     _studioService = studioService;
 }