public void TestReadFromIInputStream() { var command = new AppInstallRequest(new AppInstallInfo() { AppxPath = "abc", PackageFamilyName = "def", Dependencies = new List <String>() { "ghi", "jkl" } }); var dataArray = command.Serialize().GetByteArrayForSerialization(); var dataSizeArray = BitConverter.GetBytes((UInt32)dataArray.Length); var stream = new InMemoryRandomAccessStream(); stream.WriteAsync(dataSizeArray.AsBuffer()).AsTask().Wait(); stream.WriteAsync(dataArray.AsBuffer()).AsTask().Wait(); var result = Blob.ReadFromIInputStreamAsync(stream.GetInputStreamAt(0)).AsTask().Result; Assert.AreEqual(result.Tag, DMMessageKind.InstallApp); var request = result.MakeIRequest() as AppInstallRequest; Assert.AreEqual(request.Tag, DMMessageKind.InstallApp); Assert.AreEqual(request.AppInstallInfo.AppxPath, "abc"); Assert.AreEqual(request.AppInstallInfo.PackageFamilyName, "def"); Assert.AreEqual(request.AppInstallInfo.Dependencies[0], "ghi"); Assert.AreEqual(request.AppInstallInfo.Dependencies[1], "jkl"); }
public void TestSerializationRoundtripThroughStream() { var command = new AppInstallRequest(new AppInstallInfo() { AppxPath = "abc", PackageFamilyName = "def", Dependencies = new List <String>() { "ghi", "jkl" } }); var blob = command.Serialize(); var stream = new InMemoryRandomAccessStream(); blob.WriteToIOutputStreamAsync(stream.GetOutputStreamAt(0)).AsTask().Wait(); var blob2 = Blob.ReadFromIInputStreamAsync(stream.GetInputStreamAt(0)).AsTask().Result; Assert.AreEqual(blob2.Tag, blob.Tag); var command2 = blob2.MakeIRequest() as AppInstallRequest; Assert.IsNotNull(command2); Assert.AreEqual(command2.Tag, DMMessageKind.InstallApp); Assert.AreEqual(command2.AppInstallInfo.AppxPath, "abc"); Assert.AreEqual(command2.AppInstallInfo.PackageFamilyName, "def"); Assert.AreEqual(command2.AppInstallInfo.Dependencies[0], "ghi"); Assert.AreEqual(command2.AppInstallInfo.Dependencies[1], "jkl"); }
public void TestRequestSerializeDeserialize() { var appInstallRequest = new AppInstallRequest(new AppInstallInfo() { AppxPath = "abc", PackageFamilyName = "def", Dependencies = new List <String>() { "ghi", "jkl" } }); var blob = appInstallRequest.Serialize(); var appInstallRequestRehydrated = AppInstallRequest.Deserialize(blob) as AppInstallRequest; Assert.AreEqual(appInstallRequestRehydrated.Tag, DMMessageKind.InstallApp); Assert.AreEqual(appInstallRequestRehydrated.AppInstallInfo.AppxPath, "abc"); Assert.AreEqual(appInstallRequestRehydrated.AppInstallInfo.PackageFamilyName, "def"); Assert.AreEqual(appInstallRequestRehydrated.AppInstallInfo.Dependencies[0], "ghi"); Assert.AreEqual(appInstallRequestRehydrated.AppInstallInfo.Dependencies[1], "jkl"); }
public void TestWriteToOutputStream() { var command = new AppInstallRequest(new AppInstallInfo() { AppxPath = "abc", PackageFamilyName = "def", Dependencies = new List <String>() { "ghi", "jkl" } }); var blob = command.Serialize(); var stream = new InMemoryRandomAccessStream(); blob.WriteToIOutputStreamAsync(stream.GetOutputStreamAt(0)).AsTask().Wait(); var reader = new DataReader(stream.GetInputStreamAt(0)); reader.LoadAsync(4).AsTask().Wait(); var bytes = new byte[4]; reader.ReadBytes(bytes); var size = BitConverter.ToUInt32(bytes, 0); // like I said, too brittle: //Assert.AreEqual(size, 44U); // this is somewhat brittle. var reader2 = new DataReader(stream.GetInputStreamAt(4)); reader2.LoadAsync(size).AsTask().Wait(); var bytes2 = new byte[size]; reader2.ReadBytes(bytes2); var blob2 = Blob.CreateFromByteArray(bytes2); Assert.AreEqual(blob.Tag, blob2.Tag); var command2 = blob2.MakeIRequest() as AppInstallRequest; Assert.AreEqual(command2.Tag, DMMessageKind.InstallApp); Assert.AreEqual(command2.AppInstallInfo.AppxPath, "abc"); Assert.AreEqual(command2.AppInstallInfo.PackageFamilyName, "def"); Assert.AreEqual(command2.AppInstallInfo.Dependencies[0], "ghi"); Assert.AreEqual(command2.AppInstallInfo.Dependencies[1], "jkl"); }