public void DataObjectRegistry_LoadsFromJson() { try { DataObjectRegistries.Reset(); DataObjectRegistries.Register(GetType().Assembly); DataObjectRegistries.Get <TestDataObject>().SetSourceFiles(new[] { Path.Combine("Data", "DataObjectRegistryData.json") }); DataObjectRegistries.Load(); var dobj1 = DataObjectRegistries.Get <TestDataObject>().GetObjectByKey("TEST_OBJECT_1"); TheResultingObject(dobj1) .ShouldSatisfyTheCondition(x => x.Key == "TEST_OBJECT_1") .ShouldSatisfyTheCondition(x => x.GlobalID == new Guid("3bd956ab-24cc-49e7-a178-99111c69d24f")) .ShouldSatisfyTheCondition(x => x.Foo == "Hello") .ShouldSatisfyTheCondition(x => x.Bar == "World"); var dobj2 = DataObjectRegistries.Get <TestDataObject>().GetObjectByKey("TEST_OBJECT_2"); TheResultingObject(dobj2) .ShouldSatisfyTheCondition(x => x.Key == "TEST_OBJECT_2") .ShouldSatisfyTheCondition(x => x.GlobalID == new Guid("285c472e-a184-49a6-9639-d5b127ebc74a")) .ShouldSatisfyTheCondition(x => x.Foo == "Goodbye") .ShouldSatisfyTheCondition(x => x.Bar == "Universe"); } finally { DataObjectRegistries.Reset(); } }
public void ResolvedDataObjectReference_DeserializesFromJson_Guid_WhenNullable() { try { DataObjectRegistries.Reset(); DataObjectRegistries.Register(GetType().Assembly); DataObjectRegistries.Get <TestDataObject>().SetSourceFiles(new[] { Path.Combine("Data", "DataObjectRegistryData.xml") }); DataObjectRegistries.Load(); const String json1 = @"""3bd956ab-24cc-49e7-a178-99111c69d24f"""; const String json2 = @"null"; var reference1 = JsonConvert.DeserializeObject <ResolvedDataObjectReference?>(json1); TheResultingValue(reference1.Value) .ShouldSatisfyTheCondition(x => x.Value.Equals(Guid.Parse("3bd956ab-24cc-49e7-a178-99111c69d24f"))); var reference2 = JsonConvert.DeserializeObject <ResolvedDataObjectReference?>(json2); TheResultingValue(reference2.HasValue) .ShouldBe(false); } finally { DataObjectRegistries.Reset(); } }
/// <summary> /// Gets a <see cref="System.ComponentModel.TypeConverter.StandardValuesCollection"/> containing the object references defined by the specified data object registry. /// </summary> /// <returns>The <see cref="System.ComponentModel.TypeConverter.StandardValuesCollection"/> which was created.</returns> private static StandardValuesCollection GetStandardValuesForRegistry() { var registry = DataObjectRegistries.Get <T>(); var keys = registry.Select(x => String.Format("@{0}:{1}", registry.ReferenceResolutionName, x.Key)); var references = (from k in keys select(ResolvedDataObjectReference) ObjectResolver.FromString(k, typeof(ResolvedDataObjectReference))).ToList(); references.Insert(0, ResolvedDataObjectReference.Invalid); return(new StandardValuesCollection(references)); }
public void ResolvedDataObjectReference_SerializesToJson_WhenNullable() { try { DataObjectRegistries.Reset(); DataObjectRegistries.Register(GetType().Assembly); DataObjectRegistries.Get <TestDataObject>().SetSourceFiles(new[] { Path.Combine("Data", "DataObjectRegistryData.xml") }); DataObjectRegistries.Load(); var reference = DataObjectRegistries.ResolveReference("@test:TEST_OBJECT_1"); var json1 = JsonConvert.SerializeObject((ResolvedDataObjectReference?)reference); TheResultingString(json1) .ShouldBe(@"""@test:TEST_OBJECT_1"""); } finally { DataObjectRegistries.Reset(); } }
public void ResolvedDataObjectReference_SerializesToJson_Guid_WhenNullable() { try { DataObjectRegistries.Reset(); DataObjectRegistries.Register(GetType().Assembly); DataObjectRegistries.Get <TestDataObject>().SetSourceFiles(new[] { Path.Combine("Data", "DataObjectRegistryData.xml") }); DataObjectRegistries.Load(); var reference = new ResolvedDataObjectReference(Guid.Parse("3bd956ab-24cc-49e7-a178-99111c69d24f")); var json = JsonConvert.SerializeObject((ResolvedDataObjectReference?)reference); TheResultingString(json) .ShouldBe(@"""3bd956ab-24cc-49e7-a178-99111c69d24f"""); } finally { DataObjectRegistries.Reset(); } }
public void ResolvedDataObjectReference_DeserializesFromJson() { try { DataObjectRegistries.Reset(); DataObjectRegistries.Register(GetType().Assembly); DataObjectRegistries.Get <TestDataObject>().SetSourceFiles(new[] { Path.Combine("Data", "DataObjectRegistryData.xml") }); DataObjectRegistries.Load(); const String json = @"""@test:TEST_OBJECT_1"""; var reference = JsonConvert.DeserializeObject <ResolvedDataObjectReference>(json); TheResultingValue(reference) .ShouldSatisfyTheCondition(x => x.Value.Equals(Guid.Parse("3bd956ab-24cc-49e7-a178-99111c69d24f"))); } finally { DataObjectRegistries.Reset(); } }
public void ResolvedDataObjectReference_SerializesToJson() { try { DataObjectRegistries.Reset(); DataObjectRegistries.Register(GetType().Assembly); DataObjectRegistries.Get <TestDataObject>().SetSourceFiles(new[] { Path.Combine("Resources", "DataObjectRegistryData.xml") }); DataObjectRegistries.Load(); var reference = DataObjectRegistries.ResolveReference("@test:TEST_OBJECT_1"); var json = JsonConvert.SerializeObject(reference, CoreJsonSerializerSettings.Instance); TheResultingString(json) .ShouldBe(@"""@test:TEST_OBJECT_1"""); } finally { DataObjectRegistries.Reset(); } }
/// <summary> /// Gets the data object registry for the specified object type. /// </summary> /// <typeparam name="T">The type of object for which to retrieve a registry.</typeparam> /// <returns>The <see cref="UltravioletDataObjectRegistry{T}"/> which contains objects of type <typeparamref name="T"/>.</returns> public static UltravioletDataObjectRegistry <T> Get <T>() where T : UltravioletDataObject => (UltravioletDataObjectRegistry <T>)DataObjectRegistries.Get <T>();