public void SerializedResourceLibraryRoundtrip() { var expected = Guid.NewGuid().ToString(); var expectedResource = new GenericNativeResource <string>(expected); var resourceUri = ResourcesHelper.NewTestResourceUri(expectedResource.Id); ResourceManager.RegisterResourceLoader(ResourcesHelper.TestResourceLoader <string>(id => expectedResource)); var library = new ResourceLibrary(); var resource = library.GetResourceByUri <GenericNativeResource <string> >(resourceUri); Assert.IsNotNull(resource); Assert.AreEqual(expected, resource.NativeResource); var libraryXml = Encoding.UTF8.GetString(library.ToBytes()); Assert.IsFalse(string.IsNullOrEmpty(libraryXml)); var savedLibrary = ResourceLibrary.FromBytes(Encoding.UTF8.GetBytes(libraryXml)); Assert.IsNotNull(savedLibrary); var resourceById = savedLibrary.GetResource <GenericNativeResource <string> >(expectedResource.Id); var resourceByUri = savedLibrary.GetResourceByUri <GenericNativeResource <string> >(resourceUri); Assert.AreSame(resourceById, resourceByUri); Assert.AreEqual(expected, resourceById.NativeResource); }
/// <summary>Deep creates a test AvatarDefinition</summary> /// <param name="resourceLibrary">Library in which to create resources</param> /// <returns>Created AvatarDefinition identifier</returns> public static string DeepCreateTestAvatarDefinition(IResourceLibrary resourceLibrary) { var avatar = CreateTestAvatarDefinition(); resourceLibrary.AddResource(avatar); var content = "<AvatarResource>{0}</AvatarResource>".FormatInvariant(avatar.ResourceId); var resource = new GenericNativeResource <string>(avatar.ResourceId, content); resourceLibrary.AddResource(resource); return(avatar.Id); }