public void GetDataPins_NoWorks_Ok() { PersonWorksPart part = GetPart(0); List <DataPin> pins = part.GetDataPins(null).ToList(); TestHelper.AssertValidDataPinNames(pins); Assert.Equal(3, pins.Count); DataPin pin = pins.Find(p => p.Name == "tot-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("0", pin.Value); pin = pins.Find(p => p.Name == "dubious-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("0", pin.Value); pin = pins.Find(p => p.Name == "lost-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("0", pin.Value); }
public static PersonWorksPart GetPart(int count) { PersonWorksPart part = new PersonWorksPart { ItemId = Guid.NewGuid().ToString(), RoleId = "some-role", CreatorId = "zeus", UserId = "another" }; for (int n = 1; n <= count; n++) { part.Works.Add(new PersonWork { Titles = new List <string>(new[] { $"title-{n}" }), Genre = (n & 1) == 1 ? "odd" : "even", IsDubious = n == 3, IsLost = n == 3, Language = (n & 1) == 1 ? "eng" : "ita", Note = "note", Chronotopes = TestHelper.GetChronotopes(2), References = TestHelper.GetDocReferences(2) }); } return(part); }
/// <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)); } PersonWorksPart part = new PersonWorksPart(); SetPartMetadata(part, roleId, item); string[] languages = new[] { "eng", "ita", "fra", "deu", "spa" }; for (int n = 1; n <= Randomizer.Seed.Next(1, 3 + 1); n++) { part.Works.Add(new Faker <PersonWork>() .RuleFor(a => a.Language, f => f.PickRandom(languages)) .RuleFor(a => a.IsDubious, f => f.Random.Bool(0.2f)) .RuleFor(a => a.IsLost, f => f.Random.Bool(0.2f)) .RuleFor(a => a.Genre, f => f.Lorem.Word()) .RuleFor(a => a.Titles, f => new List <string>(new[] { f.Lorem.Sentence() })) .RuleFor(a => a.Chronotopes, SeederHelper.GetChronotopes(1, 3)) .RuleFor(a => a.References, SeederHelper.GetDocReferences(1, 3)) .RuleFor(a => a.Note, f => f.Random.Bool(0.2f)? f.Lorem.Sentence() : null) .Generate()); } return(part); }
public void GetDataPins_Works_Ok() { PersonWorksPart part = GetPart(3); List <DataPin> pins = part.GetDataPins(null).ToList(); Assert.Equal(10, pins.Count); TestHelper.AssertValidDataPinNames(pins); // counts DataPin pin = pins.Find(p => p.Name == "tot-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("3", pin.Value); pin = pins.Find(p => p.Name == "dubious-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("1", pin.Value); pin = pins.Find(p => p.Name == "lost-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("1", pin.Value); // genre pin = pins.Find(p => p.Name == "genre" && p.Value == "odd"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); pin = pins.Find(p => p.Name == "genre" && p.Value == "even"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); // language pin = pins.Find(p => p.Name == "language" && p.Value == "eng"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); pin = pins.Find(p => p.Name == "language" && p.Value == "ita"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); for (int n = 1; n <= 3; n++) { // title pin = pins.Find(p => p.Name == "title" && p.Value == $"title{n}"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); } }
public void Seed_Ok() { PersonWorksPartSeeder seeder = new PersonWorksPartSeeder(); seeder.SetSeedOptions(_seedOptions); IPart part = seeder.GetPart(_item, null, _factory); Assert.NotNull(part); PersonWorksPart p = part as PersonWorksPart; Assert.NotNull(p); TestHelper.AssertPartMetadata(p); Assert.NotEmpty(p.Works); }
public void Part_Is_Serializable() { PersonWorksPart part = GetPart(2); string json = TestHelper.SerializePart(part); PersonWorksPart part2 = TestHelper.DeserializePart <PersonWorksPart>(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.Works.Count); // TODO: details }