public void CreateSchema_WhenFirstLevelIdentity_ReturnsSchemaWithIdentityAccessor() { var builder = new AutoSchemaBuilder<WithIdentity>(); var schema = builder.CreateSchema(); Assert.AreEqual(IdTypes.Identity, schema.IdAccessor.IdType); Assert.IsNotNull(schema.IdAccessor); }
public void CreateSchema_WhenIdentityItemHasNoIndexableFirstLevelProperties_ThrowsMissingIndexableMembersException() { var builder = new AutoSchemaBuilder<WithOnlyIdentity>(); var ex = CustomAssert.Throws<SisoDbException>( () => builder.CreateSchema()); var expectedMessage = string.Format(ExceptionMessages.AutoSchemaBuilder_MissingIndexableMembers, "WithOnlyIdentity"); Assert.AreEqual(expectedMessage, ex.Message); }
public void CreateSchema_WhenByteMember_IndexAccessorIsCreatedForByteMember() { var builder = new AutoSchemaBuilder<WithByte>(); var schema = builder.CreateSchema(); var byteIac = schema.IndexAccessors.SingleOrDefault(iac => iac.Path == "Byte"); Assert.IsNotNull(byteIac); Assert.IsTrue(byteIac.DataType.IsByteType()); }
public void CreateSchema_WhenByteArrayMember_NoIndexAccessorIsCreatedForByteArrayMember() { var builder = new AutoSchemaBuilder<WithBytes>(); var ex = Assert.Throws<SisoDbException>(() => builder.CreateSchema()); Assert.AreEqual( ExceptionMessages.AutoSchemaBuilder_MissingIndexableMembers.Inject("WithBytes"), ex.Message); }
public void CreateSchema_WhenItemHasIndexableFirstLevelProperties_IndexAccessorsAreExtracted() { var builder = new AutoSchemaBuilder<WithIdAndIndexableFirstLevelMembers>(); var schema = builder.CreateSchema(); CustomAssert.IsNotEmpty(schema.IndexAccessors); }
public void CreateSchema_WhenItemHasIdMember_CreatesSchemaWithKeyMemberAccessor() { var builder = new AutoSchemaBuilder<WithIdAndIndexableFirstLevelMembers>(); var schema = builder.CreateSchema(); Assert.IsNotNull(schema.IdAccessor); }
public void CreateSchema_WhenThirdLevelIndexablePropertiesExists_PathReflectsHierarchy() { var builder = new AutoSchemaBuilder<WithFirstSecondAndThirdLevelMembers>(); var schema = builder.CreateSchema(); var thirdLevelItems = schema.IndexAccessors.Where(iac => iac.Level == 2); CustomAssert.ForAll(thirdLevelItems, iac => iac.Path.StartsWith("SecondLevelItem.ThirdLevelItem.")); }
public void CreateSchema_WhenThirdLevelIndexablePropertiesExists_IndexAccessorsAreCreated() { var builder = new AutoSchemaBuilder<WithFirstSecondAndThirdLevelMembers>(); var schema = builder.CreateSchema(); var hasThirdLevelAccessors = schema.IndexAccessors.Any(iac => iac.Level == 2); Assert.IsTrue(hasThirdLevelAccessors); }
public void CreateSchema_WhenNestedType_SchemaNameReflectsTypeName() { const string expectedName = "WithIdAndIndexableFirstLevelMembers"; var builder = new AutoSchemaBuilder<WithIdAndIndexableFirstLevelMembers>(); var schema = builder.CreateSchema(); Assert.AreEqual(expectedName, schema.Name); }
public void CreateSchema_WhenItemHasNoIdMember_ThrowsMissingKeyMemberException() { var builder = new AutoSchemaBuilder<WithNoId>(); var ex = CustomAssert.Throws<SisoDbException>(() => builder.CreateSchema()); var expectedMessage = string.Format(ExceptionMessages.AutoSchemaBuilder_MissingIdMember, "WithNoId"); Assert.AreEqual(expectedMessage, ex.Message); }