Пример #1
0
        public void Issue194Repro()
        {
            using (var context = GetContext())
            {
                var parent = new ParentEntity();
                parent.Id = "parent";
                var child = context.ChildEntities.Create();
                child.Code        = "child";
                child.Description = "Some description";
                child.Parent      = parent;
                context.ChildEntities.Add(child);

                context.SaveChanges();
            }

            using (var context = GetContext())
            {
                var parent        = context.ParentEntities.First();
                var modifiedChild = new ChildEntity
                {
                    Parent      = parent,
                    Code        = "child",
                    Description = "A new description for the existing child"
                };

                var existingChild = context.ChildEntities.First();
                context.DeleteObject(existingChild);
                context.ChildEntities.Add(modifiedChild);
                context.SaveChanges();
            }
        }
Пример #2
0
        public static ChildEntity SaveForTest(this ChildEntity entity, CoreEntity parent = null,
                                              string name = null, int?integer = null, decimal?deci = null)
        {
            var created = entity.GenerateForTest();

            return(SaveEntity <ChildEntity, int>(created));
        }
Пример #3
0
        public void deleteCascadeParentEntity()
        {
            using (UnitOfWork worker = new UnitOfWork(new SqliteTestDbContext()))
            {
                ChildEntity newChild        = new ChildEntity();
                var         createDateChild = new DateTime(2022, 4, 8, 4, 35, 11);
                newChild.createdDate = createDateChild;
                newChild.name        = "NewChild";
                newChild.sequenceNo  = 32;

                ParentEntity newParent        = new ParentEntity();
                var          createDateParent = new DateTime(2020, 1, 10, 11, 25, 20);
                newParent.createdDate = createDateParent;
                newParent.name        = "NewParent";
                newParent.sequenceNo  = 32;
                newParent.ChildEntity.Add(newChild);

                worker.ParentEntityRepository.Add(newParent);

                var newParentDb = worker.ParentEntityRepository.GetAll().ToList();
                worker.ParentEntityRepository.Remove(newParentDb.FirstOrDefault());
                newParentDb = worker.ParentEntityRepository.GetAll().ToList();
                Assert.AreEqual(0, newParentDb.Count);


                var newChildDb = worker.ChildEntityRepository.GetAll().ToList();
                Assert.AreEqual(0, newChildDb.Count);

                var newSubClassDb = worker.SubClassEntityRepository.GetAll().ToList();
                Assert.AreEqual(0, newSubClassDb.Count);
            }
        }
Пример #4
0
        public void DeleteParentButNotChild()
        {
            CollectionListeners   listeners = new CollectionListeners(Sfi);
            IParentWithCollection parent    = CreateParentWithOneChild("parent", "child");
            ChildEntity           child     = (ChildEntity)GetFirstChild(parent.Children);

            listeners.Clear();
            ISession     s  = OpenSession();
            ITransaction tx = s.BeginTransaction();

            parent = (IParentWithCollection)s.Get(parent.GetType(), parent.Id);
            child  = (ChildEntity)s.Get(child.GetType(), child.Id);
            parent.RemoveChild(child);
            s.Delete(parent);
            tx.Commit();
            s.Close();
            int index = 0;

            CheckResult(listeners, listeners.InitializeCollection, parent, index++);
            if (child is ChildWithBidirectionalManyToMany)
            {
                CheckResult(listeners, listeners.InitializeCollection, (ChildWithBidirectionalManyToMany)child, index++);
            }
            CheckResult(listeners, listeners.PreCollectionRemove, parent, index++);
            CheckResult(listeners, listeners.PostCollectionRemove, parent, index++);
            if (child is ChildWithBidirectionalManyToMany)
            {
                CheckResult(listeners, listeners.PreCollectionUpdate, (ChildWithBidirectionalManyToMany)child, index++);
                CheckResult(listeners, listeners.PostCollectionUpdate, (ChildWithBidirectionalManyToMany)child, index++);
            }
            CheckNumberOfResults(listeners, index);
        }
Пример #5
0
        public static List <ParentEntity> GetGeneratedParents()
        {
            var Random = new Random();
            var values = new List <ParentEntity>();

            for (int i = 0; i < stringValues.Count - 1; i++)
            {
                var entity = new ParentEntity()
                {
                    Id     = i,
                    Header = stringValues[Random.Next(stringValues.Count - 1)],
                };
                for (int j = 0; j < Random.Next(10); j++)
                {
                    var child = new ChildEntity()
                    {
                        Id    = j,
                        Name  = stringValues[Random.Next(stringValues.Count - 1)],
                        Score = Random.Next(10000) / 5,
                        IsImp = Random.Next(2) > 1
                    };

                    entity.ChildEntity.Add(child);
                }
                entity.Score = entity.ChildEntity.Sum(c => c.Score);
                values.Add(entity);
            }
            return(values);
        }
Пример #6
0
    public ParentEntity Update(int id, string columnA, string columnB)
    {
        ParentEntity _entity = null;

        using (var context = CreateContext())
        {
            bool isNew = false;

            _entity = context.ParentEntity
                      .Include("ChildEntity")
                      .SingleOrDefault(e => e.parent_id == id);
            ChildEntity entityChild = ParentEntity.ChildEntity.SingleOrDefault();

            if (entityChild == null)
            {
                entityChild = new ChildEntity();
                isNew       = true;
            }

            entityChild.ColumnA = columnA;
            entityChild.ColumnB = columnB;

            if (isNew)
            {
                ParentEntity.ChildEntity.Add(entityChild);
            }

            context.SaveChanges();
        }

        return(_entity);
    }
Пример #7
0
    public async Task Connection_parent_child()
    {
        var query   = @"
{
  parentEntitiesConnection(first:2, after: '0') {
    totalCount
    edges {
      cursor
      node {
        property
        children
        {
          property
        }
      }
    }
    items {
      property
      children
      {
        property
      }
    }
  }
}
";
        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2"
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3"
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5"
        };

        entity4.Children.Add(entity5);

        using (var database = await sqlInstance.Build())
        {
            var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5);

            ObjectApprover.Verify(result);
        }
    }
Пример #8
0
    public async Task Query_Cyclic()
    {
        var query = @"
{
  childEntities (orderBy: {path: ""property""})
  {
    property
    parent
    {
      property
      children
      {
        property
        parent
        {
          property
        }
      }
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        await using var database = await sqlInstance.Build();

        var result = await RunQuery(database, query, null, null, false, entity1, entity2, entity3, entity4, entity5);

        await Verifier.Verify(result);
    }
Пример #9
0
        public void VerifyPolymorphicQueryGeneric()
        {
            var childVersion1 = new ChildEntity {
                Id = id1, Data = "x", Number = 1
            };

            AuditReader().CreateQuery().ForEntitiesAtRevision <ChildEntity>(1).Single().Should().Be(childVersion1);
            AuditReader().CreateQuery().ForEntitiesAtRevision <ParentEntity>(1).Single().Should().Be(childVersion1);
        }
Пример #10
0
        public void VerifyPolymorphicQuery()
        {
            var childVersion1 = new ChildEntity {
                Id = id1, Data = "x", Number = null
            };

            Assert.AreEqual(childVersion1, AuditReader().CreateQuery().ForEntitiesAtRevision(typeof(ChildEntity), 1).GetSingleResult());
            Assert.AreEqual(childVersion1, AuditReader().CreateQuery().ForEntitiesAtRevision(typeof(ParentEntity), 1).GetSingleResult());
        }
Пример #11
0
 public ChildModel(ParentModel parent)
 {
     _entity = new ChildEntity {
         Id = Guid.NewGuid()
     };
     if (parent != null)
     {
         _entity.ParentId = parent.Id;
     }
 }
Пример #12
0
        private static ChildEntity AddChildData(ApiContext context, string name)
        {
            var data = new ChildEntity
            {
                Name = name
            };

            context.Set <ChildEntity>().Add(data);
            return(data);
        }
Пример #13
0
    public async Task SingleParent_Child_WithFragment()
    {
        var query = @"
{
  parentEntity(id: ""00000000-0000-0000-0000-000000000001"") {
    ...parentEntityFields
  }
}
fragment parentEntityFields on ParentGraph {
  property
  children(orderBy: {path: ""property""})
  {
    ...childEntityFields
  }
}
fragment childEntityFields on ChildGraph {
  property
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        await using var database = await sqlInstance.Build();

        var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5);

        await Verifier.Verify(result);
    }
Пример #14
0
        public static RootEntity TestData()
        {
            var child1 = new ChildEntity("CHILD_1");
            var child2 = new ChildEntity("CHILD_2");

            var other = new OtherEntity("OTHER", new List <ChildEntity> {
                child1, child2
            });

            return(new RootEntity("NAME_1", other));
        }
Пример #15
0
        public void VerifyHistoryOfChild()
        {
            var ver1 = new ChildEntity {
                Id = id1, Data = "x", Number = 1
            };
            var ver2 = new ChildEntity {
                Id = id1, Data = "y", Number = 2
            };

            Assert.AreEqual(ver1, AuditReader().Find <ChildEntity>(id1, 1));
            Assert.AreEqual(ver2, AuditReader().Find <ChildEntity>(id1, 2));
        }
Пример #16
0
        public static ChildEntity GenerateForTest(this ChildEntity entity, CoreEntity parent = null,
                                                  string name = null, int?integer = null, decimal?deci = null)
        {
            RandomizeTestBase <ChildEntity, int>(entity);

            if (entity.CoreEntity == null)
            {
                entity.CoreEntity = new CoreEntity().SaveForTest();
            }

            return(entity);
        }
Пример #17
0
    public async Task Parent_child()
    {
        var queryString = @"
{
  parentEntities
  {
    property
    children
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000002"),
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000003"),
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000004"),
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000005"),
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        var result = await RunQuery(queryString, null, entity1, entity2, entity3, entity4, entity5);

        ObjectApprover.VerifyWithJson(result);
    }
Пример #18
0
        public void Entity_Delete_StateShould()
        {
            // Arrange
            var entity = new ChildEntity();

            Assert.Equal(State.Unchanged, entity.State);

            // Act
            entity.Delete();

            // Assert
            Assert.Equal(State.Deleted, entity.State);
        }
Пример #19
0
    public async Task Child_parent()
    {
        var query = @"
{
  childEntities
  {
    property
    parent
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        using (var database = await sqlInstance.Build())
        {
            var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5);

            ObjectApprover.Verify(result);
        }
    }
Пример #20
0
    public async Task SingleParent_Child()
    {
        var query = @"
{
  parentEntity(id: ""00000000-0000-0000-0000-000000000001"") {
    property
    children
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        using (var database = await sqlInstance.Build())
        {
            var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5);

            ObjectApprover.Verify(result);
        }
    }
Пример #21
0
    public async Task SingleParent_Child_mutation()
    {
        var query = @"
mutation {
  parentEntityMutation(id: ""00000000-0000-0000-0000-000000000001"") {
    property
    children(orderBy: {path: ""property""})
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        await using var database = await sqlInstance.Build();

        var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5);

        await Verifier.Verify(result);
    }
    public async Task Parent_child()
    {
        var query = @"
{
  parentEntities
  {
    property
    children
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        await using var database = await sqlInstance.Build();

        var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5);

        await Verify(result);
    }
Пример #23
0
        public void Entity_UpdateProperty_StateShould()
        {
            // Arrange
            var entity = new ChildEntity();

            Assert.Equal(State.Unchanged, entity.State);
            Assert.Equal(default(int), entity.SimpleField);

            // Act
            entity.SetSimpleField(1);

            // Assert
            Assert.Equal(1, entity.SimpleField);
            Assert.Equal(State.Modified, entity.State);
        }
Пример #24
0
        public void Entity_UpdateCollection_StateShould()
        {
            // Arrange
            var entity = new ChildEntity();

            Assert.Empty(entity.FieldCollection);
            Assert.Equal(State.Unchanged, entity.State);

            // Act
            entity.FieldCollection.Add(10);

            // Assert
            Assert.Single(entity.FieldCollection);
            Assert.Equal(State.Modified, entity.State);
        }
Пример #25
0
        public void Entity_Create_ThenUpdate_StateShould()
        {
            // Arrange
            var entity = new ChildEntity();

            Assert.Equal(State.Unchanged, entity.State);

            // Act
            entity.Create();
            Assert.Equal(State.Added, entity.State);
            entity.Id = 2;

            // Assert
            Assert.Equal(State.Added, entity.State);
        }
    public async Task Parent_child()
    {
        var query = @"
{
  parentEntities
  {
    property
    children
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        var result = await RunQuery(query, null, true, null, entity1, entity2, entity3, entity4, entity5);

        ObjectApprover.VerifyWithJson(result);
    }
Пример #27
0
 public void Init()
 {
     _childEntity = new ChildEntity
     {
         Id   = 1,
         Name = "child1"
     };
     _clientEntity = new ChildEntity
     {
         Id   = 2,
         Name = "client1"
     };
     _parentEntity = new ParentEntity
     {
         Id = 100
     };
 }
Пример #28
0
    public async Task Child_parent_with_alias()
    {
        var query = @"
{
  childEntities
  {
    parentAlias
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        var result = await RunQuery(await sqlInstance.Build(), query, null, null, entity1, entity2, entity3, entity4, entity5);

        ObjectApprover.VerifyWithJson(result);
    }
Пример #29
0
    public async Task SingleParent_Child()
    {
        var query = @"
{
  parentEntity(id: ""00000000-0000-0000-0000-000000000001"") {
    property
    children(orderBy: {path: ""property""})
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Id       = Guid.Parse("00000000-0000-0000-0000-000000000001"),
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        await using var database = await sqlInstance.Build();
        await RunQuery(database, query, null, null, false, new object[] { entity1, entity2, entity3, entity4, entity5 });
    }
Пример #30
0
    public async Task Child_parent()
    {
        var query = @"
{
  childEntities (orderBy: {path: ""property""})
  {
    property
    parent
    {
      property
    }
  }
}";

        var entity1 = new ParentEntity
        {
            Property = "Value1"
        };
        var entity2 = new ChildEntity
        {
            Property = "Value2",
            Parent   = entity1
        };
        var entity3 = new ChildEntity
        {
            Property = "Value3",
            Parent   = entity1
        };

        entity1.Children.Add(entity2);
        entity1.Children.Add(entity3);
        var entity4 = new ParentEntity
        {
            Property = "Value4"
        };
        var entity5 = new ChildEntity
        {
            Property = "Value5",
            Parent   = entity4
        };

        entity4.Children.Add(entity5);

        await using var database = await sqlInstance.Build();
        await RunQuery(database, query, null, null, false, new object[] { entity1, entity2, entity3, entity4, entity5 });
    }
Пример #31
0
        public void Issue194Repro()
        {
            using (var context = GetContext())
            {
                var parent = new ParentEntity();
                parent.Id = "parent";
                var child = context.ChildEntities.Create();
                child.Code = "child";
                child.Description = "Some description";
                child.Parent = parent;
                context.ChildEntities.Add(child);

                context.SaveChanges();
            }

            using (var context = GetContext())
            {
                var parent = context.ParentEntities.First();
                var modifiedChild = new ChildEntity
                {
                    Parent = parent,
                    Code = "child",
                    Description = "A new description for the existing child"
                };

                var existingChild = context.ChildEntities.First();
                context.DeleteObject(existingChild);
                context.ChildEntities.Add(modifiedChild);
                context.SaveChanges();
            }
        }