/// <summary> /// Process the projection asynchronously and return the end state of the projection /// </summary> /// <param name="projectionToProcess"> /// The projection to run /// </param> /// <returns> /// The sequence number up until which the projection was run /// </returns> public async Task <IProjectionResponse> ProcessAsync(IProjectionUntyped projectionToProcess, OrchestrationCallbackIdentity responseSource = null) { await Process(projectionToProcess); return(ProjectionResponse.Create(projectionToProcess, responseSource)); }
public void GetValuesAsArray_NotNull_TestMethod() { ProjectionResponse projResp = ProjectionResponse.Create(Mocking.Mocking.GetProjectionUntyped()); JArray testArray = projResp.Values; Assert.IsNotNull(testArray); }
public void GetValuesAsArray_AccountMatch_TestMethod() { string expected = "Acct.1"; string actual = "Not set"; ProjectionResponse projResp = ProjectionResponse.Create(Mocking.Mocking.GetProjectionUntyped()); JArray testArray = projResp.Values; Mocking.Mocking.MockBalanceResponse testItem = testArray.First.ToObject <Mocking.Mocking.MockBalanceResponse>(); if (null != testItem) { actual = testItem.AccountNumber; } Assert.AreEqual(expected, actual); }
public void GetValuesAsArray_ValueMatch_TestMethod() { decimal expected = 70.0M; decimal actual = -1.9M; ProjectionResponse projResp = ProjectionResponse.Create(Mocking.Mocking.GetProjectionUntyped()); JArray testArray = projResp.Values; Mocking.Mocking.MockBalanceResponse testItem = testArray.First.ToObject <Mocking.Mocking.MockBalanceResponse>(); if (null != testItem) { actual = testItem.Balance; } Assert.AreEqual(expected, actual); }
public void IterationSetup() { _cancellationTokenSource = new CancellationTokenSource(); var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var numEventsProcessed = 0; _dispatcher = new Mock <ReverseCallDispatcher>(); _dispatcher .Setup(_ => _.Reject(It.IsAny <ProjectionRegistrationResponse>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _dispatcher .Setup(_ => _.Accept(It.IsAny <ProjectionRegistrationResponse>(), It.IsAny <CancellationToken>())) .Returns(tcs.Task); _dispatcher .Setup(_ => _.Call(It.IsAny <ProjectionRequest>(), It.IsAny <Dolittle.Runtime.Execution.ExecutionContext>(), It.IsAny <CancellationToken>())) .Returns <ProjectionRequest, Dolittle.Runtime.Execution.ExecutionContext, CancellationToken>((request, _, __) => { Interlocked.Add(ref numEventsProcessed, 1); var response = new ProjectionResponse { Replace = new ProjectionReplaceResponse { State = request.CurrentState.State } }; if (numEventsProcessed == NumberEventsToProcess) { tcs.SetResult(); } return(Task.FromResult(response)); }); _projectionsToRun = Enumerable.Range(0, Projections).Select(_ => new Dolittle.Runtime.Events.Processing.Projections.Projection( _dispatcher.Object, new ProjectionDefinition( Guid.NewGuid(), ScopeId.Default, _eventTypes.Select(ProjectionEventSelector.EventSourceId), new ProjectionState("{\"hello\": 42}"), new ProjectionCopySpecification(CopyToMongoDBSpecification.Default)), "some alias", false)).ToArray(); }
public void Constructor_TestMethod() { ProjectionResponse testObj = ProjectionResponse.Create(Mocking.Mocking.GetProjectionUntyped()); Assert.IsNotNull(testObj); }