public async Task GetAllFileMetadataTemplates_ValidResponse_ValidEntries()
{
/*** Arrange ***/
string responseString = @"{
""entries"": [
{
""currentDocumentStage"": ""Init"",
""$type"": ""documentFlow-452b4c9d-c3ad-4ac7-b1ad-9d5192f2fc5f"",
""$parent"": ""file_5010739061"",
""$id"": ""50ba0dba-0f89-4395-b867-3e057c1f6ed9"",
""$version"": 4,
""$typeVersion"": 2,
""needsApprovalFrom"": ""Smith"",
""$template"": ""documentFlow"",
""$scope"": ""enterprise_12345""
},
{
""$type"": ""productInfo-9d7b6993-b09e-4e52-b197-e42f0ea995b9"",
""$parent"": ""file_5010739061"",
""$id"": ""15d1014a-06c2-47ad-9916-014eab456194"",
""$version"": 2,
""$typeVersion"": 1,
""skuNumber"": 45334223,
""description"": ""Watch"",
""$template"": ""productInfo"",
""$scope"": ""enterprise_12345""
},
{
""Popularity"": ""25"",
""$type"": ""properties"",
""$parent"": ""file_5010739061"",
""$id"": ""b6f36cbc-fc7a-4eda-8889-130f350cc057"",
""$version"": 0,
""$typeVersion"": 2,
""$template"": ""properties"",
""$scope"": ""global""
},
],
""limit"": 100
}";
IBoxRequest boxRequest = null;
_handler.Setup(h => h.ExecuteAsync<BoxMetadataTemplateCollection<Dictionary<string, object>>>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxMetadataTemplateCollection<Dictionary<string, object>>>>(new BoxResponse<BoxMetadataTemplateCollection<Dictionary<string, object>>>()
{
Status = ResponseStatus.Success,
ContentString = responseString
})).Callback<IBoxRequest>(r => boxRequest = r);
/*** Act ***/
BoxMetadataTemplateCollection<Dictionary<string, object>> result = await _metadataManager.GetAllFileMetadataTemplatesAsync("5010739061");
/*** Request ***/
Assert.AreEqual(string.Format("{0}/metadata", "5010739061"), boxRequest.Path);
/*** Response ***/
Assert.AreEqual("Init", result.Entries[0]["currentDocumentStage"]);
Assert.AreEqual("50ba0dba-0f89-4395-b867-3e057c1f6ed9", result.Entries[0]["$id"]);
Assert.AreEqual("file_5010739061", result.Entries[1]["$parent"]);
Assert.AreEqual((long)2, result.Entries[1]["$version"]);
Assert.AreEqual("25", result.Entries[2]["Popularity"]);
Assert.AreEqual((long)2, result.Entries[2]["$typeVersion"]);
}