예제 #1
0
        private List <object> PrepData()
        {
            var model5_a = new ModelWith3Connections();

            model5_a.Field1 = "a";
            model5_a.Id     = "model5_a";

            var model5_b = new ModelWith3Connections();

            model5_b.Field1 = "b";
            model5_b.Id     = "model5_b";

            return(new List <object>
            {
                model5_a,
                model5_b
            });
        }
예제 #2
0
        public void CanResolveWithAtLeastOneNullEdgeConnection()
        {
            const string srcId   = "conn_1";
            const string destId1 = "conn_2_1";
            const string destId2 = "conn_2_2";

            int counter = 0;

            var model = new ModelWith3Connections
            {
                Id     = srcId,
                Field1 = "fas",
                Edge1  = new ModelWith3ConnectionsEdge
                {
                    Id     = destId1,
                    Field1 = "das one",
                    Other  = new ModelWith3ConnectionsOther {
                        Id = destId1
                    }
                },
                Edge2 = new ModelWith3ConnectionsEdge
                {
                    Id     = destId2,
                    Field1 = "das two",
                    Other  = new ModelWith3ConnectionsOther {
                        Id = destId2
                    }
                },
                Edge3 = null
            };

            ModelWith3Connections      m1   = null;
            ModelWith3ConnectionsOther m2_1 = null;
            ModelWith3ConnectionsOther m2_2 = null;

            var edges = _connectionFieldResolver.HandleConnectionEdges(model, (entity) =>
            {
                if (entity is ModelWith3Connections em1)
                {
                    if (em1.Id == srcId)
                    {
                        m1 = em1;
                    }
                }

                if (entity is ModelWith3ConnectionsOther em2)
                {
                    if (em2.Id == destId1)
                    {
                        m2_1 = em2;
                    }
                    if (em2.Id == destId2)
                    {
                        m2_2 = em2;
                    }
                }

                counter++;
            });

            counter.ShouldBe(3);

            edges.ShouldNotBeNull();
            edges.Count.ShouldBe(2);

            m1.ShouldNotBeNull();
            m2_1.ShouldNotBeNull();
            m2_2.ShouldNotBeNull();

            int errorCount = 0;

            edges.ForEach(edge =>
            {
                if (edge.DestinationId == destId1)
                {
                    AssertEdge(edge, srcId, destId1);
                    return;
                }

                if (edge.DestinationId == destId2)
                {
                    AssertEdge(edge, srcId, destId2);
                    return;
                }

                errorCount++;
            });

            errorCount.ShouldBe(0);
        }