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); }
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); }
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); }
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)); }