Ejemplo n.º 1
0
        /// <summary>
        /// Creates and seeds a new part.
        /// </summary>
        /// <param name="item">The item this part should belong to.</param>
        /// <param name="roleId">The optional part role ID.</param>
        /// <param name="factory">The part seeder factory. This is used
        /// for layer parts, which need to seed a set of fragments.</param>
        /// <returns>A new part.</returns>
        /// <exception cref="ArgumentNullException">item or factory</exception>
        public override IPart GetPart(IItem item, string roleId,
                                      PartSeederFactory factory)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            CorrExchangesPart part = new CorrExchangesPart();

            SetPartMetadata(part, roleId, item);

            for (int n = 1; n <= Randomizer.Seed.Next(1, 3 + 1); n++)
            {
                part.Exchanges.Add(new Faker <CorrExchange>()
                                   .RuleFor(e => e.IsDubious, f => f.Random.Bool(0.3f))
                                   .RuleFor(e => e.IsIndirect, f => f.Random.Bool())
                                   .RuleFor(e => e.IsFromParticipant, f => f.Random.Bool())
                                   .RuleFor(e => e.Chronotopes,
                                            new List <Chronotope> {
                    SeederHelper.GetChronotope("from", 1200)
                })
                                   .RuleFor(e => e.Participants, SeederHelper.GetDecoratedIds(1, 2))
                                   .RuleFor(e => e.Sources, SeederHelper.GetDocReferences(1, 3))
                                   .RuleFor(e => e.Attachments, SeederHelper.GetAttachments(1, 3))
                                   .Generate());
            }

            return(part);
        }
Ejemplo n.º 2
0
        public void GetDataPins_NoExchange_Ok()
        {
            CorrExchangesPart part = GetPart(0);

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

            TestHelper.AssertValidDataPinNames(pins);

            Assert.Single(pins);
            DataPin pin = pins[0];

            Assert.Equal("tot-count", pin.Name);
            TestHelper.AssertPinIds(part, pin);
            Assert.Equal("0", pin.Value);
        }
Ejemplo n.º 3
0
        public void Part_Is_Serializable()
        {
            CorrExchangesPart part = GetPart(2);

            string            json  = TestHelper.SerializePart(part);
            CorrExchangesPart part2 =
                TestHelper.DeserializePart <CorrExchangesPart>(json);

            Assert.Equal(part.Id, part2.Id);
            Assert.Equal(part.TypeId, part2.TypeId);
            Assert.Equal(part.ItemId, part2.ItemId);
            Assert.Equal(part.RoleId, part2.RoleId);
            Assert.Equal(part.CreatorId, part2.CreatorId);
            Assert.Equal(part.UserId, part2.UserId);

            Assert.Equal(2, part.Exchanges.Count);
            // TODO: details
        }
        public void Seed_Ok()
        {
            CorrExchangesPartSeeder seeder = new CorrExchangesPartSeeder();

            seeder.SetSeedOptions(_seedOptions);

            IPart part = seeder.GetPart(_item, null, _factory);

            Assert.NotNull(part);

            CorrExchangesPart p = part as CorrExchangesPart;

            Assert.NotNull(p);

            TestHelper.AssertPartMetadata(p);

            Assert.NotEmpty(p.Exchanges);
        }
Ejemplo n.º 5
0
        public void GetDataPins_EmptyExchange_Ok()
        {
            CorrExchangesPart part = GetPart(0);

            part.Exchanges.Add(new CorrExchange
            {
                Participants = new List <DecoratedId>(new[]
                {
                    new DecoratedId
                    {
                        Id   = "barbato",
                        Rank = 1
                    }
                })
            });

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

            Assert.Equal(2, pins.Count);
        }
Ejemplo n.º 6
0
        private static CorrExchangesPart GetPart(int count)
        {
            CorrExchangesPart part = new CorrExchangesPart
            {
                ItemId    = Guid.NewGuid().ToString(),
                RoleId    = "some-role",
                CreatorId = "zeus",
                UserId    = "another"
            };

            for (int n = 1; n <= count; n++)
            {
                part.Exchanges.Add(new CorrExchange
                {
                    IsDubious         = n % 2 == 0,
                    IsIndirect        = n % 2 == 0,
                    IsFromParticipant = n % 2 != 0,
                    Chronotopes       = new List <Chronotope>(new[] {
                        new Chronotope
                        {
                            Tag      = "from",
                            Date     = HistoricalDate.Parse(n + 1200 + " AD"),
                            TextDate = "kal.apr.",
                            Place    = (n % 2 == 0? "Even" : "Odd") + " town",
                            Sources  = TestHelper.GetDocReferences(2)
                        },
                        new Chronotope
                        {
                            Tag   = "to",
                            Date  = HistoricalDate.Parse(n + 1201 + " AD"),
                            Place = (n % 2 == 0 ? "Even" : "Odd") + " lake"
                        }
                    }),
                    Participants = GetParticipants(2),
                    Sources      = TestHelper.GetDocReferences(2),
                    Attachments  = GetAttachments(2)
                });
            }

            return(part);
        }
Ejemplo n.º 7
0
        public void GetDataPins_Exchanges_Ok()
        {
            CorrExchangesPart part = GetPart(3);

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

            Assert.Equal(19, pins.Count);
            TestHelper.AssertValidDataPinNames(pins);

            DataPin pin = pins.Find(p => p.Name == "dubious-count");

            TestHelper.AssertPinIds(part, pin);
            Assert.Equal("1", pin.Value);

            pin = pins.Find(p => p.Name == "indirect-count");
            TestHelper.AssertPinIds(part, pin);
            Assert.Equal("1", pin.Value);

            pin = pins.Find(p => p.Name == "incoming-count");
            TestHelper.AssertPinIds(part, pin);
            Assert.Equal("2", pin.Value);

            for (int n = 1; n <= 3; n++)
            {
                HistoricalDate date  = HistoricalDate.Parse(n + 1200 + " AD");
                double         value = date.GetSortValue();
                pin = pins.Find(p => p.Name == "date-value.from" &&
                                p.Value == value.ToString(CultureInfo.InvariantCulture));
                Assert.NotNull(pin);
                TestHelper.AssertPinIds(part, pin);

                date  = HistoricalDate.Parse(n + 1201 + " AD");
                value = date.GetSortValue();
                pin   = pins.Find(p => p.Name == "date-value.to" &&
                                  p.Value == value.ToString(CultureInfo.InvariantCulture));
                Assert.NotNull(pin);
                TestHelper.AssertPinIds(part, pin);
            }

            pin = pins.Find(p => p.Name == "place.from" && p.Value == "even town");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);

            pin = pins.Find(p => p.Name == "place.from" && p.Value == "odd town");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);

            pin = pins.Find(p => p.Name == "place.to" && p.Value == "even lake");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);

            pin = pins.Find(p => p.Name == "place.to" && p.Value == "odd lake");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);

            for (int n = 1; n <= 2; n++)
            {
                pin = pins.Find(p =>
                                p.Name == $"participant.{(n % 2 == 0 ? "even" : "odd")}" &&
                                p.Value == $"guy{n}");
                TestHelper.AssertPinIds(part, pin);
            }

            pin = pins.Find(p => p.Name == "att-odd-count" && p.Value == "3");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);

            pin = pins.Find(p => p.Name == "att-even-count" && p.Value == "3");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);

            pin = pins.Find(p => p.Name == "att-tot-count" && p.Value == "6");
            Assert.NotNull(pin);
            TestHelper.AssertPinIds(part, pin);
        }