Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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()
                            )
                        );
                }
            }
        }
Esempio n. 3
0
        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")}");
                });
            }
        }
Esempio n. 4
0
        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()
                                  );
            }
        }
Esempio n. 5
0
 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
             );
     }
 }
Esempio n. 6
0
        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());
            }
        }
Esempio n. 7
0
        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()
                    );
            }
        }
Esempio n. 8
0
        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"));
            }
        }