Exemple #1
0
        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();
        }