public void TestResolveReferences()
        {
            // Arrange
            var schema       = CoreSchemaFixture.Create();
            var userRoleInfo = schema.Locate(new[] { "User", "Role", "Info" });
            var infoId       = new Field(userRoleInfo)
            {
                Name = "InfoId"
            };
            var scope = new Field(userRoleInfo)
            {
                Name = "Scope"
            };
            var infoIdRef = new FieldReference
            {
                SchemaName = "core",
                FieldName  = "InfoId"
            };
            var scopeRef = new FieldReference
            {
                SchemaName = "core",
                FieldName  = "Scope"
            };

            infoIdRef.EntityPath.AddRange(new[] { "User", "Role", "Info" });
            scopeRef.EntityPath.AddRange(new[] { "User", "Role", "Info" });
            userRoleInfo.PrimaryKey.AddRange(new[] { infoIdRef, scopeRef });
            // Act
            userRoleInfo.ResolveReferences(pass: 0);
            // Assert
            var resolvedFields = userRoleInfo.PrimaryKey.Select(k => k.ResolvedField);

            Assert.Equal(new[] { infoId, scope }, resolvedFields);
        }
Esempio n. 2
0
        public void TestLocate_ThrowsForNonExistentEntities()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();

            // Act & Assert
            Assert.Throws <EntityNotFoundException>(() => schema.Locate(new[] { "User", "VoidEntity" }));
        }
        public void TestIsAncestorOf_ThrowsForEqualAncestorAndChild()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var user   = schema.Locate(new[] { "User" });

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() => user.IsAncestorOf(user));
        }
        public void TestPath()
        {
            // Arrange
            var schema   = CoreSchemaFixture.Create();
            var userRole = schema.Locate(new[] { "User", "Role" });
            // Act
            var path = userRole.Path;

            // Assert
            Assert.Equal(new[] { "User", "Role" }, path);
        }
        public void TestThatUniqueKeyAddsItselfToEntity()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var role   = schema.Locate(new[] { "Role" });
            // Act
            var uniqueKey = new UniqueKey(role);

            // Assert
            Assert.Equal(new[] { uniqueKey }, role.UniqueKeys);
        }
        public void TestLocate()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var user   = schema.Entities.Single(e => e.Name == "User");
            var path   = new[] { "Role", "Info" };
            // Act
            var userRoleInfo = user.Locate(path);

            // Assert
            Assert.Equal(user, userRoleInfo.Parent.Parent);
        }
        public void TestIsAncestorOf(bool expected, string[] ancestorPath, string[] childPath)
        {
            // Arrange
            var schema   = CoreSchemaFixture.Create();
            var ancestor = schema.Locate(ancestorPath);
            var child    = schema.Locate(childPath);
            // Act
            var isAncestor = ancestor.IsAncestorOf(child);

            // Assert
            Assert.Equal(expected, isAncestor);
        }
Esempio n. 8
0
        public void TestLocate()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var role   = schema.Entities.Single(e => e.Name == "Role");
            var path   = new[] { "Role", "Info" };
            // Act
            var roleInfo = schema.Ast.Locate("core", path);

            // Assert
            Assert.Equal(role, roleInfo.Parent);
        }
        public void TestThatMutationAddsItselfToEntity()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var user   = schema.Locate(new[] { "User" });
            // Act
            var contactInformation = new Mutation(user)
            {
                Name = "ContactInformation"
            };

            // Assert
            Assert.Equal(new[] { contactInformation }, user.Mutations);
        }
Esempio n. 10
0
        public void TestThatFieldAddsItselfToEntity()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var role   = schema.Locate(new[] { "Role" });
            // Act
            var roleId = new Field(role)
            {
                Name = "RoleId"
            };

            // Assert
            Assert.Equal(new[] { roleId }, role.Fields);
        }
        public void TestResolveReferences_ThrowsForIllegalPrimaryKeys()
        {
            // Arrange
            var schema = CoreSchemaFixture.Create();
            var user   = schema.Locate(new[] { "User" });
            var role   = schema.Locate(new[] { "Role" });

            _ = new Field(role)
            {
                Name = "RoleId"
            };
            var roleIdRef = new FieldReference
            {
                SchemaName = "core",
                FieldName  = "RoleId"
            };

            roleIdRef.EntityPath.Add("Role");
            user.PrimaryKey.Add(roleIdRef);
            // Act & Assert
            Assert.Throws <SemanticException>(() => user.ResolveReferences(pass: 0));
        }