public void SampleContest_ReturnExpectedAggregate() { // Setup DB. var givenUser = new IdentityUser("USER"); Context.Users.Add(givenUser); var givenContest = new Contest { Name = "", Status = Contest.ContestState.InProgress }; Context.Contests.Add(givenContest); var givenTask = new Task { Contest = givenContest, Description = "", Name = "task-name", }; Context.Tasks.Add(givenTask); var givenSolution = new Solution { SourceCode = "given-source-code", Language = "java", Task = givenTask, IdentityUser = givenUser }; Context.Solutions.Add(givenSolution); Context.SaveChanges(); IQueryHandler <NewestSolutionsQuery, NewestSolutionsResult> newestSolutionQueryHandler = new NewestSolutionsQueryHandler(Context); IQueryHandler <AggregateContestSolutionsQuery, AggregateContestSolutionsResult> sut = new AggregateContestSolutionsQueryHandler(Context, newestSolutionQueryHandler); var givenQuery = AggregateContestSolutionsQuery.Create(givenContest.Id); var aggregate = sut.HandleAsync(givenQuery).Result.Aggregate; var actualKey = aggregate.Users.Keys.Single(); var actualValue = aggregate.Users.Values.Single(); actualKey.Should().Be(givenUser.Id); actualValue.Tasks.Should().HaveCount(1) .And.ContainSingle(dto => dto.Name == givenTask.Name); }
public NewestSolutionsTests() { Sut = new NewestSolutionsQueryHandler(Context); }