public static void AssertHasLinkWithKeyAndQuery(JArray linksArray, List <string> linkRelations, string routeNameLinking, string keyObjectString = null, string queryString = null) { var foundLink = false; foreach (var link in linksArray) { if (!(link is JObject linkObject)) { throw new Exception("Link array item should be a JObject"); } var relationArray = (JArray)linkObject["rel"]; var sirenRelations = relationArray.Values <string>().ToList(); var hasDesiredRelations = StringReadOnlyListComparer.Equals(sirenRelations, linkRelations); if (hasDesiredRelations) { AssertRoute(((JValue)linkObject["href"]).Value <string>(), routeNameLinking, keyObjectString, queryString); foundLink = true; break; } } Assert.IsTrue(foundLink); }
private static void AssertMediaTypes(IReadOnlyCollection <string> expectedAvailableMediaType, JToken typeToken) { var mediaTypesFromJToken = typeToken.Value <string>().Split(',').ToList(); var stringReadOnlyCollectionComparer = new StringReadOnlyCollectionComparer(); var hasDesiredMediaTypes = stringReadOnlyCollectionComparer.Equals(expectedAvailableMediaType, mediaTypesFromJToken); Assert.IsTrue(hasDesiredMediaTypes, $"Expected media types do not match {string.Join(",", expectedAvailableMediaType)} <-> {string.Join(",", mediaTypesFromJToken)}"); }
private static void AssertLink(JObject linkObject, string rel, string expectedUrl, IReadOnlyCollection <string> expectedAvailableMediaTypes) { var relationArray = (JArray)linkObject["rel"]; var sirenRelations = relationArray.Values <string>().ToList(); var stringListComparer = new StringReadOnlyCollectionComparer(); var hasDesiredRelations = stringListComparer.Equals(sirenRelations, new List <string> { rel }); Assert.IsTrue(hasDesiredRelations); Assert.AreEqual(expectedUrl, ((JValue)linkObject["href"]).Value <string>()); var typeParameter = linkObject["type"]; if (typeParameter == null) { Assert.IsTrue(expectedAvailableMediaTypes.Count == 0, $"Expected media types: {string.Join(",", expectedAvailableMediaTypes)}"); } else { AssertMediaTypes(expectedAvailableMediaTypes, linkObject["type"]); } }
public void Compare_Null_ReturnsTrue() { Assert.IsTrue(stringReadOnlyListComparer.Equals(null, null)); }