public void WhenExplicitExcludedThenNotIncludeInHierarchy()
        {
            var orm = new ObjectRelationalMapper();
            orm.TablePerClass<IMyEntity>();
            orm.Exclude<ToExcludeImplEntity>();

            orm.IsRootEntity(typeof(IMyEntity)).Should().Be.True();
            orm.IsRootEntity(typeof(ToExcludeImplEntity)).Should().Be.False();

            orm.IsEntity(typeof(IMyEntity)).Should().Be.True();
            orm.IsEntity(typeof(ValidImplEntity)).Should().Be.True();
            orm.IsEntity(typeof(ToExcludeImplEntity)).Should().Be.False();
        }
        public void WhenExplicitExcludedThenNotIncludeInHierarchy()
        {
            var orm = new ObjectRelationalMapper();

            orm.TablePerClass <IMyEntity>();
            orm.Exclude <ToExcludeImplEntity>();

            orm.IsRootEntity(typeof(IMyEntity)).Should().Be.True();
            orm.IsRootEntity(typeof(ToExcludeImplEntity)).Should().Be.False();

            orm.IsEntity(typeof(IMyEntity)).Should().Be.True();
            orm.IsEntity(typeof(ValidImplEntity)).Should().Be.True();
            orm.IsEntity(typeof(ToExcludeImplEntity)).Should().Be.False();
        }
		public void WhenExplicitExcludedUsingGenericTypeDefinitionThenNotIncludeInHierarchy()
		{
			var orm = new ObjectRelationalMapper();
			orm.TablePerClass<Movement>();
			orm.Exclude(typeof(Movement<>));

			orm.IsRootEntity(typeof(Movement)).Should().Be.True();
			orm.IsRootEntity(typeof(Movement<>)).Should().Be.False();

			orm.IsEntity(typeof(Movement)).Should().Be.True();
			orm.IsEntity(typeof(Income)).Should().Be.True();
			orm.IsEntity(typeof(Outcome)).Should().Be.True();
			orm.IsEntity(typeof(Movement<string>)).Should().Be.False();
			orm.IsEntity(typeof(Movement<int>)).Should().Be.False();
		}
 public void IsRecognizedAsEntity()
 {
     (typeof(TestSubEntity)).Satisfy(te => mapper.IsEntity(te));
     (typeof(TestSubSubEntity)).Satisfy(te => mapper.IsEntity(te));
 }