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); }
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); }