public void MergeOneToOneRelations()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsOneToOneRelation(property);

			destination.Merge(source);
			destination.OneToOneRelations.Should().Have.Count.EqualTo(1);
		}
		public void MergeVersionProperties()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsVersionProperty(property);

			destination.Merge(source);
			destination.VersionProperties.Should().Have.Count.EqualTo(1);
		}
		public void MergeAny()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsAny(property);

			destination.Merge(source);
			destination.Any.Should().Have.Count.EqualTo(1);
		}
		public void MergeDictionaries()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsMap(property);

			destination.Merge(source);
			destination.Dictionaries.Should().Have.Count.EqualTo(1);
		}
		public void MergeNaturalIds()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsNaturalId(property);

			destination.Merge(source);
			destination.NaturalIds.Should().Have.Count.EqualTo(1);
		}
		public void MergeDynamicComponents()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsDynamicComponent(property, typeof(MyClass));

			destination.Merge(source);
			destination.DynamicComponents.Should().Have.Count.EqualTo(1);
			destination.GetDynamicComponentTemplate(property).Should().Be(typeof(MyClass));
		}
		public void MergeDictionaries()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsMap(property);

			destination.Merge(source);
			Assert.That(destination.Dictionaries, Has.Count.EqualTo(1));
		}
		public void MergeDynamicComponents()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsDynamicComponent(property, typeof(MyClass));

			destination.Merge(source);
			Assert.That(destination.DynamicComponents, Has.Count.EqualTo(1));
			Assert.That(destination.GetDynamicComponentTemplate(property), Is.EqualTo(typeof(MyClass)));
		}
		public void MergeComposedId()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsPartOfComposedId(property);

			destination.Merge(source);
			Assert.That(destination.ComposedIds, Has.Count.EqualTo(1));
		}
		public void MergeComponents()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsComponent(typeof (MyClass));

			destination.Merge(source);
			Assert.That(destination.Components, Has.Count.EqualTo(1));
		}
		public void MergeRootEntities()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsRootEntity(typeof (MyClass));

			destination.Merge(source);
			Assert.That(destination.RootEntities, Has.Count.EqualTo(1));
		}
		public void MergeOneToOneRelations()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsOneToOneRelation(property);

			destination.Merge(source);
			Assert.That(destination.OneToOneRelations, Has.Count.EqualTo(1));
		}
		public void MergeManyToManyRelations()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsManyToManyItemRelation(property);

			destination.Merge(source);
			Assert.That(destination.ItemManyToManyRelations, Has.Count.EqualTo(1));
		}
		public void MergeAny()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsAny(property);

			destination.Merge(source);
			Assert.That(destination.Any, Has.Count.EqualTo(1));
		}
		public void MergeComponents()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsComponent(typeof (MyClass));

			destination.Merge(source);
			destination.Components.Should().Have.Count.EqualTo(1);
		}
		public void MergeSplitDefinitions()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsPropertySplit(new SplitDefinition(typeof (MyClass), "foo", property));

			destination.Merge(source);
			destination.SplitDefinitions.Should().Have.Count.EqualTo(1);
		}
		public void MergeRootEntities()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsRootEntity(typeof (MyClass));

			destination.Merge(source);
			destination.RootEntities.Should().Have.Count.EqualTo(1);
		}
		public void MergePersistentMembers()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsPersistentMember(property);

			destination.Merge(source);
			destination.PersistentMembers.Should().Have.Count.EqualTo(1);
		}
		public void MergeComposedId()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsPartOfComposedId(property);

			destination.Merge(source);
			destination.ComposedIds.Should().Have.Count.EqualTo(1);
		}
		public void MergePersistentMembers()
		{
			var destination = new ExplicitDeclarationsHolder();
			var source = new ExplicitDeclarationsHolder();
			source.AddAsPersistentMember(property);

			destination.Merge(source);
			Assert.That(destination.PersistentMembers, Has.Count.EqualTo(1));
		}