private static VarQuotationsLayerFragment GetEmptyFragment()
        {
            VarQuotationsLayerFragment fr = new VarQuotationsLayerFragment();

            for (int n = 1; n <= 3; n++)
            {
                bool even = n % 2 == 0;
                fr.Quotations.Add(new VarQuotation
                {
                    Tag       = even? "even" : "odd",
                    Authority = even? "gram" : "ling",
                    Work      = $"work-{n}",
                    Variants  = new List <QuotationVariant>(new[]
                    {
                        new QuotationVariant
                        {
                            Lemma = $"lemma{n}",
                            Value = $"value{n}"
                        }
                    })
                });
            }

            return(fr);
        }
        public void Fragment_Is_Serializable()
        {
            VarQuotationsLayerFragment fragment = GetFragment();

            string json = TestHelper.SerializeFragment(fragment);
            VarQuotationsLayerFragment fragment2 =
                TestHelper.DeserializeFragment <VarQuotationsLayerFragment>(json);

            Assert.Equal(fragment.Location, fragment2.Location);
            Assert.NotEmpty(fragment.Quotations);
        }
        public void GetDataPins_Tag_1()
        {
            VarQuotationsLayerFragment fragment = GetEmptyFragment();

            List <DataPin> pins = fragment.GetDataPins(null).ToList();

            Assert.Equal(10, pins.Count);

            // fr-tot-count
            DataPin pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "tot-count");

            Assert.NotNull(pin);
            Assert.Equal("3", pin.Value);

            // fr-tag
            pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "tag" &&
                            p.Value == "odd");
            Assert.NotNull(pin);

            pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "tag" &&
                            p.Value == "even");
            Assert.NotNull(pin);

            // fr-authority
            pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "authority" &&
                            p.Value == "gram");
            Assert.NotNull(pin);

            pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "authority" &&
                            p.Value == "ling");
            Assert.NotNull(pin);

            // fr-work
            for (int n = 1; n <= 3; n++)
            {
                pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "work" &&
                                p.Value == $"work-{n}");
                Assert.NotNull(pin);
            }

            // fr-var-lemma
            pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "var-lemma" &&
                            p.Value == "lemma");
            Assert.NotNull(pin);

            // fr-var-value
            pin = pins.Find(p => p.Name == PartBase.FR_PREFIX + "var-value" &&
                            p.Value == "value");
            Assert.NotNull(pin);
        }
        public void Seed_Ok()
        {
            VarQuotationsLayerFragmentSeeder seeder = new VarQuotationsLayerFragmentSeeder();

            ITextLayerFragment fragment = seeder.GetFragment(_item, "1.1", "alpha");

            Assert.NotNull(fragment);

            VarQuotationsLayerFragment fr = fragment as VarQuotationsLayerFragment;

            Assert.NotNull(fr);

            Assert.Equal("1.1", fr.Location);
            // TODO other assertions...
        }