public void CanResolveEdgeConnectionBetween2ModelsOfSameType() { const string srcId = "model1_1"; const string destId = "model1_2"; int counter = 0; var model1 = new Model1 { Id = srcId, Field1 = "foo", Field2 = 3, BestFriend = new Model1Friend { Field1 = "edge foo", Field2 = 5, Id = destId, Model1 = new Model1 { Id = destId, Field1 = "bar", Field2 = 4 } } }; Model1 m1_1 = null; Model1 m1_2 = null; var edges = _connectionFieldResolver.HandleConnectionEdges(model1, (entity) => { if (entity is Model1 em) { if (em.Id == srcId) { m1_1 = em; } if (em.Id == destId) { m1_2 = em; } } counter++; }); counter.ShouldBe(2); edges.ShouldNotBeNull(); edges.Count.ShouldBe(1); m1_1.ShouldNotBeNull(); m1_2.ShouldNotBeNull(); edges[0].SourceId.ShouldBe(srcId); edges[0].DestinationId.ShouldBe(destId); edges[0].MetaFieldName.ShouldNotBeNull(); edges[0].MetaFieldName.ShouldNotBeEmpty(); edges[0].MetaType.ShouldNotBeNull(); edges[0].MetaType.ShouldNotBeEmpty(); edges[0].MetaValue.ShouldNotBeNull(); edges[0].MetaValue.ShouldNotBeEmpty(); }