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