public void GetAllReferences_All_Variants_With_IDataValueReference_Editor() { var collection = new DataValueReferenceFactoryCollection(Enumerable.Empty <IDataValueReferenceFactory>()); // mediaPicker does implement IDataValueReference var mediaPicker = new MediaPickerPropertyEditor(Mock.Of <ILogger>()); var propertyEditors = new PropertyEditorCollection(new DataEditorCollection(mediaPicker.Yield())); var trackedUdi1 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var trackedUdi2 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var trackedUdi3 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var trackedUdi4 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var property = new Property(new PropertyType(new DataType(mediaPicker)) { Variations = ContentVariation.CultureAndSegment }) { Values = new List <PropertyValue> { // Ignored (no culture) new PropertyValue { EditedValue = trackedUdi1 }, new PropertyValue { Culture = "en-US", EditedValue = trackedUdi2 }, new PropertyValue { Culture = "en-US", Segment = "A", EditedValue = trackedUdi3 }, // Ignored (no culture) new PropertyValue { Segment = "A", EditedValue = trackedUdi4 }, // duplicate new PropertyValue { Culture = "en-US", Segment = "B", EditedValue = trackedUdi3 } } }; var properties = new PropertyCollection { property }; var result = collection.GetAllReferences(properties, propertyEditors); Assert.AreEqual(2, result.Count()); Assert.AreEqual(trackedUdi2, result.ElementAt(0).Udi.ToString()); Assert.AreEqual(trackedUdi3, result.ElementAt(1).Udi.ToString()); }
public void GetAllReferences_All_Variants_With_IDataValueReference_Editor() { var collection = new DataValueReferenceFactoryCollection(() => Enumerable.Empty <IDataValueReferenceFactory>()); // mediaPicker does implement IDataValueReference var mediaPicker = new MediaPickerPropertyEditor( DataValueEditorFactory, IOHelper, EditorConfigurationParser); var propertyEditors = new PropertyEditorCollection(new DataEditorCollection(() => mediaPicker.Yield())); var trackedUdi1 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var trackedUdi2 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var trackedUdi3 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var trackedUdi4 = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString(); var serializer = new ConfigurationEditorJsonSerializer(); var property = new Property( new PropertyType(ShortStringHelper, new DataType(mediaPicker, serializer)) { Variations = ContentVariation.CultureAndSegment, }) { Values = new List <PropertyValue> { // Ignored (no culture) new() { EditedValue = trackedUdi1 }, new() { Culture = "en-US", EditedValue = trackedUdi2 }, new() { Culture = "en-US", Segment = "A", EditedValue = trackedUdi3 }, // Ignored (no culture) new() { Segment = "A", EditedValue = trackedUdi4 }, // Duplicate new() { Culture = "en-US", Segment = "B", EditedValue = trackedUdi3 }, }, }; var properties = new PropertyCollection { property }; var result = collection.GetAllReferences(properties, propertyEditors).ToArray(); Assert.AreEqual(2, result.Count()); Assert.AreEqual(trackedUdi2, result.ElementAt(0).Udi.ToString()); Assert.AreEqual(trackedUdi3, result.ElementAt(1).Udi.ToString()); }