public void Enumerates_pairs_with_predicate_key_and_dynamic_objects_value() { var g = new Graph(); g.LoadFromString(@" <urn:s> <urn:s> <urn:s> . # 1.1 <urn:s> <urn:s> <urn:p> . # 1.2 <urn:s> <urn:s> <urn:o> . # 1.3 <urn:s> <urn:p> <urn:s> . # 2.1 <urn:s> <urn:p> <urn:p> . # 2.2 <urn:s> <urn:p> <urn:o> . # 2.3 <urn:s> <urn:o> <urn:s> . # 3.1 <urn:s> <urn:o> <urn:p> . # 3.2 <urn:s> <urn:o> <urn:o> . # 3.3 <urn:p> <urn:s> <urn:s> . <urn:p> <urn:s> <urn:p> . <urn:p> <urn:s> <urn:o> . <urn:p> <urn:p> <urn:s> . <urn:p> <urn:p> <urn:p> . <urn:p> <urn:p> <urn:o> . <urn:p> <urn:o> <urn:s> . <urn:p> <urn:o> <urn:p> . <urn:p> <urn:o> <urn:o> . <urn:o> <urn:s> <urn:s> . <urn:o> <urn:s> <urn:p> . <urn:o> <urn:s> <urn:o> . <urn:o> <urn:p> <urn:s> . <urn:o> <urn:p> <urn:p> . <urn:o> <urn:p> <urn:o> . <urn:o> <urn:o> <urn:s> . <urn:o> <urn:o> <urn:p> . <urn:o> <urn:o> <urn:o> . "); var s = g.CreateUriNode(UriFactory.Create("urn:s")); var p = g.CreateUriNode(UriFactory.Create("urn:p")); var o = g.CreateUriNode(UriFactory.Create("urn:o")); var d = new DynamicNode(s); var spo = new[] { s, p, o }; using (var actual = d.Cast <KeyValuePair <string, object> >().GetEnumerator()) { using (var expected = spo.Select(n => n.Uri.AbsoluteUri).GetEnumerator()) { while (expected.MoveNext() | actual.MoveNext()) { Assert.Equal(expected.Current, actual.Current.Key); Assert.IsType <DynamicObjectCollection>(actual.Current.Value); Assert.Equal(spo, actual.Current.Value); } } } }