public void GetDataPins_Persons_Ok() { CitedPersonsPart part = GetPart(3); List <DataPin> pins = part.GetDataPins(null).ToList(); Assert.Equal(7, pins.Count); TestHelper.AssertValidDataPinNames(pins); // tot-count DataPin pin = pins.Find(p => p.Name == "tot-count"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); Assert.Equal("3", pin.Value); for (int n = 1; n <= 3; n++) { string name = "joe " + new string((char)('a' + n - 1), 3); pin = pins.Find(p => p.Name == "name" && p.Value == name); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); pin = pins.Find(p => p.Name == "id" && p.Value == $"person {n}"); Assert.NotNull(pin); TestHelper.AssertPinIds(part, pin); } }
public void GetDataPins_NoPersons_Ok() { CitedPersonsPart 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); }
private static CitedPersonsPart GetPart(int count) { CitedPersonsPart part = new CitedPersonsPart { ItemId = Guid.NewGuid().ToString(), RoleId = "some-role", CreatorId = "zeus", UserId = "another", }; for (int n = 1; n <= count; n++) { var person = new CitedPerson { Name = new PersonName { Language = "eng", Tag = "tag", Parts = new List <PersonNamePart>(new[] { new PersonNamePart { Type = "first", Value = "Joe" }, new PersonNamePart { Type = "last", Value = new string((char)('A' + n - 1), 3) } }) }, Ids = new List <DecoratedId>(new[] { new DecoratedId { Id = $"person {n}", Tag = "tag", Rank = 1, Sources = TestHelper.GetDocReferences(2) } }), Sources = TestHelper.GetDocReferences(2) }; part.Persons.Add(person); } return(part); }
public void Part_Is_Serializable() { CitedPersonsPart part = GetPart(2); string json = TestHelper.SerializePart(part); CitedPersonsPart part2 = TestHelper.DeserializePart <CitedPersonsPart>(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.Persons.Count); // TODO: details }
public void Seed_Ok() { CitedPersonsPartSeeder seeder = new CitedPersonsPartSeeder(); seeder.SetSeedOptions(_seedOptions); IPart part = seeder.GetPart(_item, null, _factory); Assert.NotNull(part); CitedPersonsPart p = part as CitedPersonsPart; Assert.NotNull(p); TestHelper.AssertPartMetadata(p); Assert.NotEmpty(p.Persons); }
/// <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)); } CitedPersonsPart part = new CitedPersonsPart(); SetPartMetadata(part, roleId, item); part.Persons = SeederHelper.GetCitedPersons(1, 3); return(part); }