private ProjectionsInfo FetchProjectionsInfo(ProjectionsInfo builtProjectionsInfo, int expectedCount) { var persistedProjectionsInfo = this._storage.GetEntityOrThrow <ProjectionsInfo>("test"); builtProjectionsInfo.Should().Be(persistedProjectionsInfo); persistedProjectionsInfo.Infos.Should().HaveCount(expectedCount); return(persistedProjectionsInfo); }
private static IEnumerable <ProjectionInfo> LoadInfoList(params int[] viewNumbers) { var generatedInfos = GenerateInfoList(viewNumbers); var projectionsInfo = new ProjectionsInfo(); projectionsInfo.Infos.UnionWith(generatedInfos); using (var ms = new MemoryStream()) { Serializer.Serialize(ms, projectionsInfo); ms.Flush(); ms.Position = 0; return(Serializer.Deserialize <ProjectionsInfo>(ms).Infos); } }
/// <summary> /// Checks the event version. /// </summary> /// <param name="builtProjectionsInfo">The built projections info.</param> /// <param name="persistedProjectionsInfo">The persisted projections info.</param> /// <param name="expectations">The expectations in format { viewNumber, expectedEvents }.</param> private void CheckEventVersion(ProjectionsInfo builtProjectionsInfo, ProjectionsInfo persistedProjectionsInfo, IDictionary <int, long> expectations) { var expectedProjectionVersions = ExpectedProjectionVersion.Create(expectations); // check projections match expectations by name persistedProjectionsInfo.Infos.Should().HaveCount(expectations.Count); persistedProjectionsInfo.Infos.Should().Contain(p => expectedProjectionVersions.Any(e => e.CheckpointFile == p.ProjectionName)); builtProjectionsInfo.Infos.Should().HaveCount(expectations.Count); builtProjectionsInfo.Infos.Should().Contain(p => expectedProjectionVersions.Any(e => e.CheckpointFile == p.ProjectionName)); // load checkpoint for each projection and confirm they match foreach (var expectation in expectedProjectionVersions) { var persistedProjectionInfo = persistedProjectionsInfo.Infos.First(p => p.ProjectionName == expectation.CheckpointFile); var checkpoint = this._storage.GetEntityOrThrow <ProjectionCheckpoint>(persistedProjectionInfo.ProjectionName); checkpoint.LatestEventVersion.Should().Be(expectation.ExpectedEventVersion); var builtProjectionInfo = builtProjectionsInfo.Infos.First(p => p.ProjectionName == expectation.CheckpointFile); builtProjectionInfo.GetEventStreamVersion().Should().Be(expectation.ExpectedEventVersion); builtProjectionInfo.ProjectionName.Should().Be(expectation.ProjectionType.Name); } }