public void Resolve_CannotExtractId_ReturnsNull()
        {
            // Arrange
            var key        = "test-flow";
            var instanceId = new FormFlowInstanceId("the-instance", new RouteValueDictionary());
            var stateType  = typeof(TestState);
            var state      = new TestState();

            var stateProvider = new Mock <IUserInstanceStateProvider>();

            stateProvider
            .Setup(s => s.GetInstance(instanceId))
            .Returns(FormFlowInstance.Create(stateProvider.Object, key, instanceId, stateType, state, properties: new Dictionary <object, object>()));

            var instanceResolver = new InstanceResolver(stateProvider.Object);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.QueryString = new QueryString($"?");

            var routeData = new RouteData();

            var actionDescriptor = new ActionDescriptor();

            actionDescriptor.SetProperty(new FormFlowDescriptor(key, stateType, IdGenerationSource.RandomId));

            var actionContext = new ActionContext(httpContext, routeData, actionDescriptor);

            // Act
            var result = instanceResolver.Resolve(actionContext);

            // Assert
            Assert.Null(result);
        }
        public void Resolve_InstanceDoesNotExistInStateStore_ReturnsNull()
        {
            // Arrange
            var key        = "test-flow";
            var instanceId = "the-instance";
            var stateType  = typeof(TestState);

            var stateProvider = new Mock <IUserInstanceStateProvider>();

            var instanceResolver = new InstanceResolver(stateProvider.Object);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.QueryString = new QueryString($"?ffiid={instanceId}");

            var routeData = new RouteData(new RouteValueDictionary()
            {
                { "ffiid", instanceId }
            });

            var actionDescriptor = new ActionDescriptor();

            actionDescriptor.SetProperty(new FormFlowDescriptor(key, stateType, IdGenerationSource.RandomId));

            var actionContext = new ActionContext(httpContext, routeData, actionDescriptor);

            // Act
            var result = instanceResolver.Resolve(actionContext);

            // Assert
            Assert.Null(result);
        }
Example #3
0
        public CreateDraftApplicationTests()
        {
            this._module = IncidentReportModuleFactory.SetupAndBuild();
            var _repository = InstanceResolver.Resolve <IDraftApplicationRepository>();

            this._testFixture             = new TestFixture(_repository);
            (_, this._suspiciousEmployee) = EmployeesTestFixture.PrepareApplicantAndRandomEmployeeInDb();
        }
Example #4
0
        public PostApplicationUseCaseTests()
        {
            this._module = IncidentReportModuleFactory.SetupAndBuild();
            var incidentApplicationRepository = InstanceResolver.Resolve <IIncidentApplicationRepository>();
            var draftApplicationRepository    = InstanceResolver.Resolve <IDraftApplicationRepository>();

            this._testFixture = new TestFixture(incidentApplicationRepository, draftApplicationRepository);
            (this._applicant, this._suspiciousEmployee) = EmployeesTestFixture.PrepareApplicantAndRandomEmployeeInDb();
        }
Example #5
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (!FormFlowInstance.IsFormFlowInstanceType(bindingContext.ModelType))
            {
                return(Task.CompletedTask);
            }

            var resolver = new InstanceResolver(_stateProvider);
            var instance = resolver.Resolve(bindingContext.ActionContext);

            if (instance != null)
            {
                bindingContext.Result = ModelBindingResult.Success(instance);
            }

            return(Task.CompletedTask);
        }
        public void Resolve_ActionDescriptorHasNoFormFlowActionDescriptor_ReturnsNull()
        {
            // Arrange
            var stateProvider = new Mock <IUserInstanceStateProvider>();

            var instanceResolver = new InstanceResolver(stateProvider.Object);

            var httpContext      = new DefaultHttpContext();
            var routeData        = new RouteData();
            var actionDescriptor = new ActionDescriptor();

            var actionContext = new ActionContext(httpContext, routeData, actionDescriptor);

            // Act
            var result = instanceResolver.Resolve(actionContext);

            // Assert
            Assert.Null(result);
        }
Example #7
0
 public object Resolve(Type requiredType)
 {
     return(resolver.Resolve(requiredType));
 }