public async Task Get_Group_GetsAllSnapshotsForGroup() { var context = TestHttpContextBuilder.CreateForPath($"/group/{groupId}") .WithClaims(configuratorClaim) .TestContext; var snapshots = new SnapshotEntryInfo[] { new SnapshotEntryInfo { Id = Guid.NewGuid().ToString(), GroupId = groupId, Name = "This One", TimeStamp = new DateTime(2013, 10, 1) }, new SnapshotEntryInfo { Id = Guid.NewGuid().ToString(), GroupId = groupId2, Name = "Not This One", TimeStamp = new DateTime(2013, 10, 2) } }; snapShotRepository.Setup(s => s.GetSnapshots()) .ReturnsAsync(snapshots); var observed = new SnapshotEntryInfo[0]; httpResponseFactory.Setup(f => f.BuildJsonResponse(context, It.IsAny <IEnumerable <SnapshotEntryInfo> >())) .Returns((HttpContext c, object config) => { observed = (config as IEnumerable <SnapshotEntryInfo>)?.ToArray() ?? new SnapshotEntryInfo[0]; return(Task.FromResult(true)); }); await target.Handle(context, options); Assert.Single(observed); Assert.Equal(snapshots[0].Id, observed[0].Id); Assert.Equal(groupId, observed[0].GroupId); Assert.Equal(snapshots[0].Name, observed[0].Name); Assert.Equal(snapshots[0].TimeStamp, observed[0].TimeStamp); }
public async Task <CommandResult> Handle(CreateSnapshotCommand command) { var client = await clientService.GetClientOrDefault(command.ClientId); if (client == null || string.IsNullOrWhiteSpace(client.Group)) { return(CommandResult.Failure("Could not find client with group. Can only create snapshot for client with group")); } var models = configurationModelRegistry.GetConfigurationRegistrations(true); var version = configurationModelRegistry.GetVersion(); var configurationIdentity = new ConfigurationIdentity(client, version); var snapshotInfo = new SnapshotEntryInfo { Id = Guid.NewGuid().ToString(), GroupId = client.Group, Name = command.Name, TimeStamp = DateTime.UtcNow }; var configurations = new List <ConfigInstance>(); foreach (var model in models) { var configurationInstance = await configurationService.GetAsync(model.ConfigType, configurationIdentity); configurations.Add(configurationInstance); } await snapshotRepository.SaveSnapshot(new ConfigurationSnapshotEntry { Info = snapshotInfo, Configurations = configurations }); return(CommandResult.Success()); }
public ConfigurationSnapshotRepositoryTests() { connector = new Mock <ISnapshotStorageConnector>(); registry = new Mock <IConfigurationModelRegistry>(); defaultIdentity = new ConfigurationIdentity(new ConfigurationClient("39aa8bb2-618b-4928-9c96-790f6dd5df63"), new Version(1, 0)); defaultEntry = new SnapshotEntryInfo { Id = "39aa8bb2-218b-4928-9c96-790f6dd5df63", GroupId = "39aa8bb2-218b-4928-9c96-790f6dd5df69", Name = "1.0", TimeStamp = DateTime.UtcNow }; target = new TextStorageSnapshotRepository(connector.Object, registry.Object); var json = JsonConvert.SerializeObject(new object[] { defaultEntry }); connector.Setup(c => c.GetSnapshotRegistryFileAsync()) .ReturnsAsync(json); }
public async Task Get_SnapshotRegistry() { var expected = new SnapshotEntryInfo[] { defaultEntry, new SnapshotEntryInfo { Id = "99aa8bb2-218b-4928-9c96-790f6dd5df63", GroupId = "99aa8bb2-218b-4928-9c96-790f6dd5df69", Name = "1.2", TimeStamp = DateTime.UtcNow } }; var json = JsonConvert.SerializeObject(expected); connector.Setup(c => c.GetSnapshotRegistryFileAsync()) .ReturnsAsync(json); var result = await target.GetSnapshots(); Assert.Equal(expected, result, new SnapShotEqualityComparer()); }