public void RunBeforeEachTest() { resource1 = new CkanResource { Name = "1" }; resource2 = new CkanResource { Name = "2" }; package = new CkanPackage { Id = packageId, Resources = new List<CkanResource>() }; }
public CkanResource GetUnsavedResource(string packageId, IndicatorMetadata indicatorMetadata, IList<CkanCoreDataSet> dataList) { IDictionary<string, string> descriptive = indicatorMetadata.Descriptive; var indicatorName = descriptive[IndicatorMetadataTextColumnNames.Name]; // Add metadata resource var resource = new CkanResource(); resource.PackageId = packageId; resource.Description = "Data for \"" + indicatorName + "\""; resource.Format = "CSV"; resource.Name = "Data"; // Add file to resource byte[] fileContents = GetCoreDataFileAsBytes(dataList); var fileNamer = new CkanFileNamer(indicatorName); resource.File = new CkanResourceFile { FileName = fileNamer.DataFileName, FileContents = fileContents }; return resource; }
public CkanResource GetUnsavedResource(string packageId, IndicatorMetadata indicatorMetadata, IList<IndicatorMetadataTextProperty> properties) { var descriptive = indicatorMetadata.Descriptive; var indicatorName = descriptive[IndicatorMetadataTextColumnNames.Name]; // Add metadata resource var resource = new CkanResource(); resource.PackageId = packageId; resource.Description = "Metadata for \"" + indicatorName + "\""; resource.Format = "CSV"; resource.Name = "Metadata"; // Add file to resource var fileContents = GetMetadataFileAsBytes(indicatorMetadata, properties, descriptive); var fileNamer = new CkanFileNamer(indicatorName); resource.File = new CkanResourceFile { FileName = fileNamer.MetadataFileName, FileContents = fileContents }; return resource; }
private CkanResource UploadResource(CkanResource ckanResource) { try { return CkanApi.CreateResource(ckanResource); } catch (Exception ex) { if (ex is CkanTimeoutException || ex is CkanInternalServerException) { if (WaitIfResourceUploadFails) { // Wait 10s before continuing Thread.Sleep(1000*10); } } else { throw; } } return null; }
public void GetCreateResource_Throws_Exception_If_Timeout() { // Arrange: mock HTTP client var mock = new Moq.Mock<ICkanHttpClient>(); var json = CkanTestHelper.GetExampleResponseFromFile("resource_create_timeout.txt"); var requestResource = new CkanResource(); mock.Setup(x => x.UploadResource(ActionNames.ResourceCreate, requestResource)) .Returns(json); // Act: get package new CkanApi(mock.Object).CreateResource(requestResource); }
public void GetCreateResource_Returns_Resource() { // Arrange: mock HTTP client var mock = new Moq.Mock<ICkanHttpClient>(); var json = CkanTestHelper.GetExampleResponseFromFile("resource_create.json"); var requestResource = new CkanResource(); mock.Setup(x => x.UploadResource(ActionNames.ResourceCreate, requestResource)) .Returns(json); // Act: get package var resource = new CkanApi(mock.Object).CreateResource(requestResource); // Assert Assert.AreEqual("Metadata", resource.Name); Assert.AreEqual(2015, resource.Created.Year); Assert.AreEqual("6ff56435-b348-46f3-83fb-c1378cc0c39c", resource.ResourceGroupId); }
public void TestCreateResource() { var ckan = CkanApi(); var unsavedResource = new CkanResource(); unsavedResource.PackageId = PackageName; unsavedResource.Description = Description; unsavedResource.Format = "CSV"; unsavedResource.Name = "resource name 6"; unsavedResource.File = new CkanResourceFile { FileName = "test.csv", FileContents = GetBytes("a,b") }; var savedResource = ckan.CreateResource(unsavedResource); // Check package Assert.IsNotNull(savedResource); Assert.AreEqual(savedResource.Format, "CSV"); }
private async Task<string> UploadData(string actionName, CkanResource resource) { string result = null; using (var client = new HttpClient()) { InitHttpClient(client); using (var content = new MultipartFormDataContent()) { var values = new[] { new KeyValuePair<string, string>("package_id", resource.PackageId), new KeyValuePair<string, string>("format", resource.Format), new KeyValuePair<string, string>("name", resource.Name), new KeyValuePair<string, string>("description", resource.Description) }; foreach (var keyValuePair in values) { content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key); } var fileContent = new ByteArrayContent(resource.File.FileContents); fileContent.Headers.Add("Content-Type", "application/vnd.ms-excel"); content.Add(fileContent, "upload", resource.File.FileName); var requestUrl = ApiResourcePath + actionName; Console.WriteLine("#URL: " + requestUrl); HttpResponseMessage response = await client.PostAsync(requestUrl, content); result = await response.Content.ReadAsStringAsync(); } } return result; }
public string UploadResource(string actionName, CkanResource resource) { Task<string> task = UploadData(actionName, resource); string json = task.Result; return json; }