public void Copies_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) as IDictionary <string, object>; var array = new KeyValuePair <string, object> [5]; var spo = new[] { s, p, o }; void isEmpty(KeyValuePair <string, object> actual) { Assert.Equal(default(KeyValuePair <string, object>), actual); } Action <KeyValuePair <string, object> > isSPOWith(string expected) { return(actual => { Assert.Equal(expected, actual.Key); Assert.IsType <DynamicObjectCollection>(actual.Value); Assert.Equal(spo, actual.Value); }); } d.CopyTo(array, 1); Assert.Collection( array, isEmpty, isSPOWith(s.Uri.AbsoluteUri), isSPOWith(p.Uri.AbsoluteUri), isSPOWith(o.Uri.AbsoluteUri), isEmpty); }