Beispiel #1
0
        /// <summary>
        /// Creates a new api from the currently registered
        /// repositories.
        /// </summary>
        public Api(
            IContentFactory contentFactory,
            IAliasRepository aliasRepository,
            IArchiveRepository archiveRepository,
            IMediaRepository mediaRepository,
            IPageRepository pageRepository,
            IPageTypeRepository pageTypeRepository,
            IParamRepository paramRepository,
            IPostRepository postRepository,
            IPostTypeRepository postTypeRepository,
            ISiteRepository siteRepository,
            ISiteTypeRepository siteTypeRepository,
            ICache cache              = null,
            IStorage storage          = null,
            IImageProcessor processor = null)
        {
            // Store the cache
            _cache = cache;

            // Create services without dependecies
            PageTypes = new PageTypeService(pageTypeRepository, cache);
            Params    = new ParamService(paramRepository, cache);
            PostTypes = new PostTypeService(postTypeRepository, cache);
            Sites     = new SiteService(siteRepository, contentFactory, cache);
            SiteTypes = new SiteTypeService(siteTypeRepository, cache);

            // Create services with dependencies
            Aliases  = new AliasService(aliasRepository, Sites, cache);
            Media    = new MediaService(mediaRepository, Params, storage, processor, cache);
            Pages    = new PageService(pageRepository, contentFactory, Sites, Params, cache);
            Posts    = new PostService(postRepository, contentFactory, Sites, Pages, cache);
            Archives = new ArchiveService(archiveRepository, Params, Posts);
        }
        public async void Update_ErrorsOccurred_ShouldReturnErrorResponse()
        {
            var mock          = new ServiceMockFacade <IPostTypeService, IPostTypeRepository>();
            var model         = new ApiPostTypeServerRequestModel();
            var validatorMock = new Mock <IApiPostTypeServerRequestModelValidator>();

            validatorMock.Setup(x => x.ValidateUpdateAsync(It.IsAny <int>(), It.IsAny <ApiPostTypeServerRequestModel>())).Returns(Task.FromResult(new ValidationResult(new List <ValidationFailure>()
            {
                new ValidationFailure("text", "test")
            })));
            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(new PostType()));
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.MediatorMock.Object,
                                              mock.RepositoryMock.Object,
                                              validatorMock.Object,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostMapperMock);

            UpdateResponse <ApiPostTypeServerResponseModel> response = await service.Update(default(int), model);

            response.Should().NotBeNull();
            response.Success.Should().BeFalse();
            validatorMock.Verify(x => x.ValidateUpdateAsync(It.IsAny <int>(), It.IsAny <ApiPostTypeServerRequestModel>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <PostTypeUpdatedNotification>(), It.IsAny <CancellationToken>()), Times.Never());
        }
 public PostController(PostService PostSvc, UserService UserSvc, PostCommentService CommentSvc, PostTypeService TypeSvc)
 {
     this.PostSvc    = PostSvc;
     this.UserSvc    = UserSvc;
     this.CommentSvc = CommentSvc;
     this.TypeSvc    = TypeSvc;
 }
        public async void Get_null_record()
        {
            var mock = new ServiceMockFacade <IPostTypeRepository>();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <PostType>(null));
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.RepositoryMock.Object,
                                              mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Object,
                                              mock.BOLMapperMockFactory.BOLPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock);

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

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>()));
        }
        public async void PostsByPostTypeId_Not_Exists()
        {
            var mock = new ServiceMockFacade <IPostTypeService, IPostTypeRepository>();

            mock.RepositoryMock.Setup(x => x.PostsByPostTypeId(default(int), It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <Post> >(new List <Post>()));
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.MediatorMock.Object,
                                              mock.RepositoryMock.Object,
                                              mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Object,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostMapperMock);

            List <ApiPostServerResponseModel> response = await service.PostsByPostTypeId(default(int));

            response.Should().BeEmpty();
            mock.RepositoryMock.Verify(x => x.PostsByPostTypeId(default(int), It.IsAny <int>(), It.IsAny <int>()));
        }
        public async void Create()
        {
            var mock  = new ServiceMockFacade <IPostTypeRepository>();
            var model = new ApiPostTypeRequestModel();

            mock.RepositoryMock.Setup(x => x.Create(It.IsAny <PostType>())).Returns(Task.FromResult(new PostType()));
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.RepositoryMock.Object,
                                              mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Object,
                                              mock.BOLMapperMockFactory.BOLPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock);

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

            response.Should().NotBeNull();
            mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny <ApiPostTypeRequestModel>()));
            mock.RepositoryMock.Verify(x => x.Create(It.IsAny <PostType>()));
        }
        public async void All()
        {
            var mock    = new ServiceMockFacade <IPostTypeRepository>();
            var records = new List <PostType>();

            records.Add(new PostType());
            mock.RepositoryMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult(records));
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.RepositoryMock.Object,
                                              mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Object,
                                              mock.BOLMapperMockFactory.BOLPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock);

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

            response.Should().HaveCount(1);
            mock.RepositoryMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>()));
        }
        public async void Delete()
        {
            var mock  = new ServiceMockFacade <IPostTypeRepository>();
            var model = new ApiPostTypeRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.CompletedTask);
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.RepositoryMock.Object,
                                              mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Object,
                                              mock.BOLMapperMockFactory.BOLPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock);

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

            response.Should().NotBeNull();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <int>()));
            mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
        }
        public async void Delete_NoErrorsOccurred_ShouldReturnResponse()
        {
            var mock  = new ServiceMockFacade <IPostTypeService, IPostTypeRepository>();
            var model = new ApiPostTypeServerRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.CompletedTask);
            var service = new PostTypeService(mock.LoggerMock.Object,
                                              mock.MediatorMock.Object,
                                              mock.RepositoryMock.Object,
                                              mock.ModelValidatorMockFactory.PostTypeModelValidatorMock.Object,
                                              mock.DALMapperMockFactory.DALPostTypeMapperMock,
                                              mock.DALMapperMockFactory.DALPostMapperMock);

            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.PostTypeModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
            mock.MediatorMock.Verify(x => x.Publish(It.IsAny <PostTypeDeletedNotification>(), It.IsAny <CancellationToken>()));
        }
Beispiel #10
0
 public PostTypeController(PostTypeService TypeSvc)
 {
     this.TypeSvc = TypeSvc;
 }