public async Task TestReplyToMessageWithAttachment() { var r = await teams.CreateMessageAsync(unitTestSpace.Id, "This message is to be replied with attachment."); Assert.AreEqual(HttpStatusCode.OK, r.HttpStatusCode); Assert.AreEqual("This message is to be replied with attachment.", r.Data.Text); var exePath = new FileInfo(Assembly.GetExecutingAssembly().Location); string path = String.Format("{0}{1}TestData{1}thrzn41.png", exePath.DirectoryName, Path.DirectorySeparatorChar); Uri fileUri = null; using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var data = new TeamsFileData(fs, "mypng.png", TeamsMediaType.ImagePNG)) { r = await teams.ReplyToMessageAsync(r.Data.Id, unitTestSpace.Id, "This is a reply message with attachment.", data); Assert.AreEqual(HttpStatusCode.OK, r.HttpStatusCode); Assert.IsTrue(r.IsSuccessStatus); Assert.IsTrue(r.Data.HasValues); Assert.IsTrue(r.Data.HasFiles); fileUri = r.Data.FileUris[0]; } Assert.AreEqual(HttpStatusCode.OK, r.HttpStatusCode); Assert.IsTrue(r.IsSuccessStatus); Assert.IsTrue(r.Data.HasValues); Assert.IsNotNull(r.Data.Id); Assert.IsNotNull(r.TrackingId); Assert.AreNotEqual(Guid.Empty, r.TransactionId); Assert.IsTrue(r.RequestInfo.ContentLength > 0); Assert.IsTrue(r.ContentLength > 0); Assert.AreEqual("POST /v1/messages HTTP/1.1", r.RequestLine); Assert.AreEqual("This is a reply message with attachment.", r.Data.Text); var resourceOperation = r.ParseResourceOperation(); Assert.AreEqual(TeamsResource.Message, resourceOperation.Resource); Assert.AreEqual(TeamsOperation.Create, resourceOperation.Operation); Assert.AreEqual("CreateMessage", resourceOperation.ToString()); }
public async Task TestCreateMessageWithAttachment() { var exePath = new FileInfo(Assembly.GetExecutingAssembly().Location); string path = String.Format("{0}{1}TestData{1}thrzn41.png", exePath.DirectoryName, Path.DirectorySeparatorChar); Uri fileUri = null; using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var data = new TeamsFileData(fs, "mypng.png", TeamsMediaType.ImagePNG)) { var r = await teams.CreateMessageAsync(unitTestSpace.Id, "**Post with attachment!!**", data); Assert.AreEqual(HttpStatusCode.OK, r.HttpStatusCode); Assert.IsTrue(r.IsSuccessStatus); Assert.IsTrue(r.Data.HasValues); Assert.IsTrue(r.Data.HasFiles); fileUri = r.Data.FileUris[0]; } var r1 = await teams.GetFileInfoAsync(fileUri); Assert.AreEqual(HttpStatusCode.OK, r1.HttpStatusCode); Assert.IsTrue(r1.IsSuccessStatus); Assert.IsTrue(r1.Data.HasValues); Assert.AreEqual("mypng.png", r1.Data.FileName); Assert.AreEqual(TeamsMediaType.ImagePNG, r1.Data.MediaType); Assert.AreEqual(34991, r1.Data.Size); var resourceOperation = r1.ParseResourceOperation(); Assert.AreEqual(TeamsResource.FileInfo, resourceOperation.Resource); Assert.AreEqual(TeamsOperation.Get, resourceOperation.Operation); Assert.AreEqual("GetFileInfo", resourceOperation.ToString()); var r2 = await teams.GetFileDataAsync(fileUri); Assert.AreEqual(HttpStatusCode.OK, r2.HttpStatusCode); Assert.IsTrue(r2.IsSuccessStatus); Assert.IsTrue(r2.Data.HasValues); Assert.AreEqual("mypng.png", r2.Data.FileName); Assert.AreEqual(TeamsMediaType.ImagePNG, r2.Data.MediaType); Assert.AreEqual(34991, r2.Data.Size); resourceOperation = r2.ParseResourceOperation(); Assert.AreEqual(TeamsResource.FileData, resourceOperation.Resource); Assert.AreEqual(TeamsOperation.Get, resourceOperation.Operation); Assert.AreEqual("GetFileData", resourceOperation.ToString()); using (var data = r2.Data.Stream) { Assert.AreEqual(34991, data.Length); } using (var stream = new MemoryStream()) { var r3 = await teams.CopyFileDataToStreamAsync(fileUri, stream); Assert.AreEqual(HttpStatusCode.OK, r3.HttpStatusCode); Assert.IsTrue(r3.IsSuccessStatus); Assert.IsTrue(r3.Data.HasValues); Assert.AreEqual("mypng.png", r3.Data.FileName); Assert.AreEqual(TeamsMediaType.ImagePNG, r3.Data.MediaType); Assert.AreEqual(34991, r3.Data.Size); resourceOperation = r3.ParseResourceOperation(); Assert.AreEqual(TeamsResource.FileData, resourceOperation.Resource); Assert.AreEqual(TeamsOperation.Get, resourceOperation.Operation); Assert.AreEqual("GetFileData", resourceOperation.ToString()); Assert.AreEqual(34991, stream.Length); } }