public async Task GetFileMetadata_ValidResponse_ValidMetadata()
{
/*** Arrange ***/
string responseString = @"{
""audience1"": ""internal"",
""documentType"": ""Q1 plans"",
""competitiveDocument"": ""no"",
""status"": ""active"",
""author"": ""Jones"",
""currentState"": ""proposal"",
""$type"": ""marketingCollateral-d086c908-2498-4d3e-8a1f-01e82bfc2abe"",
""$parent"": ""file_5010739061"",
""$id"": ""2094c584-68e1-475c-a581-534a4609594e"",
""$version"": 0,
""$typeVersion"": 0,
""$template"": ""marketingCollateral"",
""$scope"": ""enterprise_12345""
}";
IBoxRequest boxRequest = null;
_handler.Setup(h => h.ExecuteAsync<Dictionary<string, object>>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<Dictionary<string, object>>>(new BoxResponse<Dictionary<string, object>>()
{
Status = ResponseStatus.Success,
ContentString = responseString
})).Callback<IBoxRequest>(r => boxRequest = r);
/*** Act ***/
Dictionary<string, object> metadata = await _metadataManager.GetFileMetadataAsync("5010739061", "enterprise", "bandInfo");
/*** Assert ***/
/*** Request ***/
Assert.AreEqual(string.Format("{0}/metadata/{1}/{2}","5010739061", "enterprise", "bandInfo"), boxRequest.Path);
/*** Response ***/
Assert.AreEqual("internal", metadata["audience1"]);
Assert.AreEqual("Q1 plans", metadata["documentType"]);
Assert.AreEqual("no", metadata["competitiveDocument"]);
Assert.AreEqual("active", metadata["status"]);
Assert.AreEqual("Jones", metadata["author"]);
Assert.AreEqual("proposal", metadata["currentState"]);
}