public void UpdatesComplexWithFileHive() { using (var dir = new TempDirectory()) { var hive = new FileHive(dir.Value().FullName, "product"); var machine = "Dr.Robotic"; new ParallelFunc(() => { var id = Guid.NewGuid().ToString(); hive.Shifted("to-the-left").Catalog().Add(machine); var content = Guid.NewGuid().ToString(); hive.Shifted("to-the-left") .Comb(machine) .Cell(id) .Update(new InputOf(content)); Assert.Equal( content, new TextOf( hive.Shifted("to-the-left") .Comb(machine) .Cell(id) .Content() ).AsString() ); return(true); }, 256, 10000 ).Invoke(); } }
public void ShiftCreatesSubDir() { using (var dir = new TempDirectory()) { IHive hive = new FileHive(dir.Value().FullName, "cars"); hive = hive.Shifted("product"); hive.Catalog().Add("2CV"); using (var cell = hive.Comb("2CV").Cell("data") ) { cell.Update(new InputOf("bytes over bytes here...")); Assert.True( Directory.Exists( new Normalized( Path.Combine( dir.Value().FullName, "product", "2CV" ) ).AsString() ) ); } } }
public void WritesPropsWhenShifted() { using (var dir = new TempDirectory()) { var hive = new FileHive(dir.Value().FullName, "product"); Parallel.For(0, 256, (i) => { var id = $"mech-{i}"; hive.Shifted("machine").Catalog().Add(id); hive.Shifted("machine") .Comb(id) .Props() .Refined("checksum", id); }); Parallel.ForEach(hive.Shifted("machine").Catalog().List(), comb => { Assert.Equal(comb.Name(), $"machine/{comb.Props().Value("checksum")}"); }); } }
public void PrependsScopeToCombName() { using (var dir = new TempDirectory()) { IHive hive = new FileHive(dir.Value().FullName, "cockpit"); var shifted = hive.Shifted("prepend-this"); shifted.Catalog().Add("an-entry"); Assert.StartsWith("prepend-this", shifted.Comb("an-entry").Name() ); } }
public void ShiftsScope() { using (var dir = new TempDirectory()) { IHive hive = new FileHive(dir.Value().FullName, "product"); hive.Catalog().Add("2CV"); hive = hive.Shifted("machine"); hive.Catalog().Add("DrRobotic"); Assert.Equal( 1, hive.Catalog().List().Count ); } }
public void ShiftsHQ() { using (var dir = new TempDirectory()) { var hive = new FileHive(dir.Value().FullName, "cockpit"); hive.Catalog().Add("log"); var shifted = hive.Shifted("factory"); shifted.Catalog().Add("booyaa"); var shiftedAgain = shifted.Shifted("cockpit"); Assert.Contains("log", shiftedAgain.Catalog().List()[0].Name()); } }
public void WritesPropsWithDecode() { using (var dir = new TempDirectory()) { IHive hive = new FileHive(dir.Value().FullName, "product"); hive = hive.Shifted("still-parallel"); hive.Comb("an id").Props().Refined("the,:prop", "the:,value"); Assert.NotEqual( "the,:prop:the:,value\r", new TextOf( hive.Comb("an id") .Cell("props.cat") .Content() ).AsString() ); } }
public void DeliversHQInParallelAfterShift() { using (var dir = new TempDirectory()) { IHive hive = new FileHive(dir.Value().FullName, "product"); hive = hive.Shifted("still-parallel"); var first = true; Parallel.For(0, Environment.ProcessorCount << 4, i => { if (!first) { hive.Catalog().Remove("X"); first = false; } hive.Catalog().Add("X"); }); Assert.True(hive.Catalog().Has("X")); } }