public async Task DeleteItemByRef() { var repo = new VolatileRepository <Item>(() => null); var items = Enumerable.Range(0, 1000).Select(i => new Item { Value = Convert.ToString(i, 2) }).ToArray(); await repo.Write(items); var to_remove = (await repo.Read(i => i.Value.Contains("101"))).First(); await repo.Delete(to_remove); (await repo.Read(i => i.Value.Contains("101"))).Should().NotContain(i => i.ID == to_remove.ID); }
public async Task CreateReadUpdateDelete() { var repo = new VolatileRepository <Item>(() => null); var items = Enumerable.Range(0, 1000).Select(i => new Item { Value = Convert.ToString(i, 2) }).ToArray(); await repo.Write(items); var results = await repo.Read(); results.Should().BeEquivalentTo(items); await repo.Delete(r => r.Value.Contains("111")); results = await repo.Read(); results.Should().BeEquivalentTo(items.Where(i => !i.Value.Contains("111")).ToArray()); await repo.Update( results .Where(i => i.Value.Contains("000")) .Select(i => { i.Value = "Hello"; return(i); }) .ToArray()); results = await repo.Read(); var expected = items .Where(i => !i.Value.Contains("111")) .Select(i => { if (i.Value.Contains("000")) { i.Value = "Hello"; } return(i); }) .ToArray(); results.Should().BeEquivalentTo(expected); }
public void TestTrendingManagerHosting() { var repository = new VolatileRepository <int, SiteTrendingSeries>( FuncConvert.ToFSharpFunc <SiteTrendingSeries, int>(sts => sts.Id)) as IRepository <int, SiteTrendingSeries>; int seriesId = 1; var matrix = new double[] { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 }; repository.Create( new SiteTrendingSeries() { Id = seriesId, Label = seriesId.ToString(), Protocol = new TrendingProtocol() { Algorithm = "trend", Tolerance = 1.0, }, SeriesItems = ListModule.OfSeq( new List <TrendingSeriesItem> { new TrendingSeriesItem( allResults: FSharpList <RegistrationResult> .Empty, selectedResult: new RegistrationResult(matrix: matrix, label: "")) }), Shift = new double[] { 1.0, 2.0, 3.0 } }); var container = Hosting.createHostContainer(); ComponentRegistration.registerService_(typeof(ITrendingManager), typeof(TrendingManagerService), container); ComponentRegistration.registerService_(typeof(ITrendingEngine), typeof(TrendingEngineService), container); ComponentRegistration.registerService_(typeof(ITrendingDataAccess), typeof(TrendingDataAccess), container); ComponentRegistration.registerFunction <ITrendCalculationFunction, TrendCalculation>(container); ComponentRegistration.registerRepositoryInstance(repository, container); Hosting.startServices(container); var ipm = container.Resolve <IProxyManager>(); using (var proxyContext = ipm.GetTransientContext()) { var proxy = ipm.GetProxy <ITrendingManager>(); var series = proxy.GetSeries(seriesId); Assert.IsTrue(series != null); var updatedSeries = proxy.UpdateSeries(series); Assert.IsTrue(updatedSeries.Id == series.Id); } using (var proxyContext = ipm.GetTransientContext()) { var proxy = ipm.GetProxy <ITrendingManager>(); var series = proxy.GetSeries(seriesId); Assert.IsTrue(series != null); var updatedSeries = proxy.UpdateSeries(series); Assert.IsTrue(updatedSeries.Id == series.Id); } Hosting.stopServices(container); }