Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Gallio can't run test from console
- using System.Data.Services;
- using System.ServiceModel;
- using System.ServiceModel.Description;
- namespace TenForce.Execution.Api2.OData.Tests.IntegrationTests
- {
- using System;
- using System.Collections.Generic;
- using System.ServiceModel.Web;
- using MbUnit.Framework;
- using Objects;
- using Helpers;
- using Test.Attributes;
- /// <summary>
- /// <para>This class contains all the integration tests to verify the correct working conditions for attachment entities.</para>
- /// </summary>
- public class AttachmentIntegrationTests : BaseIntegrationTest
- {
- /// <summary>
- /// <para>This test will try to create a new attachment on an item using a local file.</para>
- /// </summary>
- [Test, MaxDuration]
- public void AttachmentUpload()
- {
- #region Test Preparation
- // Prepare a Workspace
- var workspace = CreateWorkspaceObject();
- Assert.IsTrue(Factory.CreateApi().Workspaces.Create(workspace), "Expected the test workspace to be created.");
- // Prepare a List
- var list = CreateList();
- list.Workspace = workspace;
- list.ItemType = new ItemType {Id = 5};
- Assert.IsTrue(Factory.CreateApi().Lists.Create(list), "Expected the test list to be created.");
- // Prepare an Item.
- var itemFields = new List<ItemField>
- {
- new ItemField {FieldId = "SF19", Type = "List", ValueId = list.Id},
- new ItemField {FieldId = "SF2", Type = "Title", Value = string.Format("I {0}", DateTime.Now)},
- new ItemField {FieldId = "SF4", Type = "AssignedTo", ValueId = 1}
- };
- var item = new Item { ItemFields = itemFields.ToArray() };
- Assert.IsTrue(Factory.CreateApi().Items.Create(item), "Expected the test item to be created.");
- #endregion
- using (var host = new DataServiceHost(typeof (Web.Api), new[] {BaseUri}))
- {
- // Start the host
- host.Open();
- // Create a new WebClient to create a call to the attachments resource
- var client = new ODataClient {BaseUri = BaseUri, Username = "sadmin", Password = string.Empty};
- // Send the file contents to the service using the correct url.
- string response = client.UploadAttachment(GetTestFileLocation("ReportingTest.xls"), item.Id);
- var parser = new ODataParser();
- parser.LoadResponse(response);
- // Fetch the Id of the Attachment, this should be greater than 0.
- int attachmentId = parser.GetEntityId();
- Assert.IsTrue(attachmentId > 0, "Expected the Id to be greater than zero.");
- // Verify if the item is coupled to the correct Item.
- response = client.GetResource(string.Format("Attachments({0})/Item", attachmentId));
- parser.LoadResponse(response);
- int itemId = parser.GetEntityId();
- Assert.IsTrue(itemId == item.Id, "Expected the linked item to have a matching Id.");
- // Change the filename of the uploaded file and verify whether the file is properly renamed.
- client.UpdateProperty(string.Format("Items({0})/Attachments({1})/Filename/$value", itemId, attachmentId), "uploaded_excel.xls");
- // Verify if the changes made it to the database.
- Attachment att = Factory.CreateApi().Attachments.Read(attachmentId);
- Assert.AreEqual("uploaded_excel.xls", att.Filename, "Expected the data to be changed on the entity.");
- Assert.IsTrue(System.IO.File.Exists(Factory.CreateApi().Attachments.GetAttachmentPath(att, false)), "Expected the file to be present on the hard drive.");
- // Close the host properly
- host.Close();
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment