示例#1
0
        public void basic_add_package()
        {
            PackageInfo pInfo0 = PLevel0V1[0];
            PackageInfo pInfo1 = PLevel0V1[1];
            PackageInfo pInfo2 = PLevel0V1[2];

            var db = new PackageDB();

            db.Instances.Should().BeEmpty();
            db.GetInstances(T0).Should().BeEmpty();

            db = db.Add(TestHelper.Monitor, pInfo0);
            db.Add(TestHelper.Monitor, pInfo0).Should().BeSameAs(db);
            db.Instances.Should().HaveCount(1);
            var p0 = db.Instances[0];

            db.Find(pInfo0.Key).Should().BeSameAs(p0);
            db.Find(pInfo1.Key).Should().BeNull();
            db.Find(pInfo2.Key).Should().BeNull();
            db.GetInstances(T0).SequenceEqual(new[] { p0 }).Should().BeTrue();

            db = db.Add(TestHelper.Monitor, pInfo2);
            db.Instances.Should().HaveCount(2);
            var p2 = db.Instances[1];

            db.Find(pInfo0.Key).Should().BeSameAs(p0);
            db.Find(pInfo1.Key).Should().BeNull();
            db.Find(pInfo2.Key).Should().BeSameAs(p2);
            db.GetInstances(T0).SequenceEqual(new[] { p0, p2 }).Should().BeTrue();

            db = db.Add(TestHelper.Monitor, pInfo1);
            db.Instances.Should().HaveCount(3);
            var p1 = db.Instances[1];

            db.Find(pInfo0.Key).Should().BeSameAs(p0);
            db.Find(pInfo1.Key).Should().BeSameAs(p1);
            db.Find(pInfo2.Key).Should().BeSameAs(p2);
            db.GetInstances(T0).SequenceEqual(new[] { p0, p1, p2 }).Should().BeTrue();

            db.GetInstances(T1).Should().BeEmpty();

            db.FindFeed("T0:F0").GetInstances(T0).SequenceEqual(db.GetInstances(T0)).Should().BeTrue();
            db.FindFeed("T0:F1").Should().BeNull();
        }
示例#2
0
        static PackageDB AddPackageLevel0(PackageDB db, int idxPackageVersion, bool atOnce, bool?revert)
        {
            IEnumerable <PackageInfo> packages = PLevel0[idxPackageVersion];

            if (!revert.HasValue)
            {
                packages = packages.Select(p => (p, Guid.NewGuid())).OrderBy(t => t.Item2).Select(t => t.p);
            }
            else if (revert.Value)
            {
                packages = packages.Reverse();
            }

            if (atOnce)
            {
                return(db.Add(TestHelper.Monitor, packages, false));
            }
            foreach (var p in packages)
            {
                db = db.Add(TestHelper.Monitor, p, false);
            }
            return(db);
        }