예제 #1
0
        protected TestObjectsC <TPrimary, TFirstSecondary, TSecondSecondary> CreateTestObjectsC <TPrimary, TFirstSecondary, TSecondSecondary>(
            IHooksDiscovery <TPrimary> primaryDiscovery = null, IHooksDiscovery <TFirstSecondary> firstSecondaryDiscovery            = null,
            IHooksDiscovery <TSecondSecondary> secondSecondaryDiscovery = null, DbContextOptions <AppDbContext> repoDbContextOptions = null)
            where TPrimary : class, IIdentifiable <int>
            where TFirstSecondary : class, IIdentifiable <int>
            where TSecondSecondary : class, IIdentifiable <int>
        {
            // creates the resource definition mock and corresponding for a given set of discoverable hooks
            Mock <IResourceHookContainer <TPrimary> >         primaryResource         = CreateResourceDefinition <TPrimary>();
            Mock <IResourceHookContainer <TFirstSecondary> >  firstSecondaryResource  = CreateResourceDefinition <TFirstSecondary>();
            Mock <IResourceHookContainer <TSecondSecondary> > secondSecondaryResource = CreateResourceDefinition <TSecondSecondary>();

            // mocking the genericServiceFactory and JsonApiContext and wiring them up.
            (Mock <ITargetedFields> ufMock, Mock <IEnumerable <IQueryConstraintProvider> > constraintsMock, Mock <IGenericServiceFactory> gpfMock,
             IJsonApiOptions options) = CreateMocks();

            AppDbContext dbContext = repoDbContextOptions != null ? new AppDbContext(repoDbContextOptions) : null;

            IResourceGraph resourceGraph = new ResourceGraphBuilder(new JsonApiOptions(), NullLoggerFactory.Instance).Add <TPrimary>().Add <TFirstSecondary>()
                                           .Add <TSecondSecondary>().Build();

            SetupProcessorFactoryForResourceDefinition(gpfMock, primaryResource.Object, primaryDiscovery, dbContext, resourceGraph);
            SetupProcessorFactoryForResourceDefinition(gpfMock, firstSecondaryResource.Object, firstSecondaryDiscovery, dbContext, resourceGraph);
            SetupProcessorFactoryForResourceDefinition(gpfMock, secondSecondaryResource.Object, secondSecondaryDiscovery, dbContext, resourceGraph);

            var execHelper      = new HookContainerProvider(gpfMock.Object, ResourceGraph, options);
            var traversalHelper = new NodeNavigator(ResourceGraph, ufMock.Object);
            var hookExecutor    = new ResourceHookExecutor(execHelper, traversalHelper, ufMock.Object, constraintsMock.Object, ResourceGraph);

            return(new TestObjectsC <TPrimary, TFirstSecondary, TSecondSecondary>(constraintsMock, hookExecutor, primaryResource, firstSecondaryResource,
                                                                                  secondSecondaryResource));
        }
예제 #2
0
        CreateTestObjects <TPrimary, TSecondary>(
            IHooksDiscovery <TPrimary> primaryDiscovery          = null,
            IHooksDiscovery <TSecondary> secondaryDiscovery      = null,
            DbContextOptions <AppDbContext> repoDbContextOptions = null
            )
            where TPrimary : class, IIdentifiable <int>
            where TSecondary : class, IIdentifiable <int>
        {
            // creates the resource definition mock and corresponding for a given set of discoverable hooks
            var primaryResource   = CreateResourceDefinition <TPrimary>();
            var secondaryResource = CreateResourceDefinition <TSecondary>();

            // mocking the genericServiceFactory and JsonApiContext and wiring them up.
            var(ufMock, constraintsMock, gpfMock, options) = CreateMocks();

            var dbContext = repoDbContextOptions != null ? new AppDbContext(repoDbContextOptions) : null;

            var resourceGraph = new ResourceGraphBuilder(new JsonApiOptions(), NullLoggerFactory.Instance)
                                .Add <TPrimary>()
                                .Add <TSecondary>()
                                .Build();

            SetupProcessorFactoryForResourceDefinition(gpfMock, primaryResource.Object, primaryDiscovery, dbContext, resourceGraph);
            SetupProcessorFactoryForResourceDefinition(gpfMock, secondaryResource.Object, secondaryDiscovery, dbContext, resourceGraph);

            var execHelper      = new HookExecutorHelper(gpfMock.Object, ResourceGraph, options);
            var traversalHelper = new TraversalHelper(ResourceGraph, ufMock.Object);
            var hookExecutor    = new ResourceHookExecutor(execHelper, traversalHelper, ufMock.Object, constraintsMock.Object, ResourceGraph);

            return(constraintsMock, ufMock, hookExecutor, primaryResource, secondaryResource);
        }
예제 #3
0
        internal (ResourceHookExecutor, Mock <IResourceHookContainer <TPrimary> >) CreateTestObjects <TPrimary>(IHooksDiscovery <TPrimary> primaryDiscovery = null)
            where TPrimary : class, IIdentifiable <int>
        {
            // creates the resource definition mock and corresponding ImplementedHooks discovery instance
            var primaryResource = CreateResourceDefinition <TPrimary>();

            // mocking the genericServiceFactory and JsonApiContext and wiring them up.
            var(ufMock, constraintsMock, gpfMock, options) = CreateMocks();

            SetupProcessorFactoryForResourceDefinition(gpfMock, primaryResource.Object, primaryDiscovery);

            var execHelper      = new HookExecutorHelper(gpfMock.Object, ResourceGraph, options);
            var traversalHelper = new TraversalHelper(ResourceGraph, ufMock.Object);
            var hookExecutor    = new ResourceHookExecutor(execHelper, traversalHelper, ufMock.Object, constraintsMock.Object, ResourceGraph);

            return(hookExecutor, primaryResource);
        }
예제 #4
0
        protected TestObjectsA <TPrimary> CreateTestObjects <TPrimary>(IHooksDiscovery <TPrimary> primaryDiscovery = null)
            where TPrimary : class, IIdentifiable <int>
        {
            // creates the resource definition mock and corresponding ImplementedHooks discovery instance
            Mock <IResourceHookContainer <TPrimary> > primaryResource = CreateResourceDefinition <TPrimary>();

            // mocking the genericServiceFactory and JsonApiContext and wiring them up.
            (Mock <ITargetedFields> ufMock, Mock <IEnumerable <IQueryConstraintProvider> > constraintsMock, Mock <IGenericServiceFactory> gpfMock,
             IJsonApiOptions options) = CreateMocks();

            SetupProcessorFactoryForResourceDefinition(gpfMock, primaryResource.Object, primaryDiscovery);

            var execHelper      = new HookContainerProvider(gpfMock.Object, ResourceGraph, options);
            var traversalHelper = new NodeNavigator(ResourceGraph, ufMock.Object);
            var hookExecutor    = new ResourceHookExecutor(execHelper, traversalHelper, ufMock.Object, constraintsMock.Object, ResourceGraph);

            return(new TestObjectsA <TPrimary>(hookExecutor, primaryResource));
        }