public void Cloning_an_foreign_key_mapping_configuration_clones_its_annotation_information()
        {
            var configuration = new ForeignKeyAssociationMappingConfiguration();

            configuration.MapKey("C1", "C2");
            configuration.HasKeyAnnotation("C1", "A1", "V1");
            configuration.HasKeyAnnotation("C2", "A2", "V2");

            var clone = (ForeignKeyAssociationMappingConfiguration)configuration.Clone();

            Assert.Equal(configuration, clone);

            configuration.HasKeyAnnotation("C2", "A2", "V3");

            Assert.NotEqual(configuration, clone);
        }
        public void HasKeyAnnotation_checks_arguments()
        {
            var configuration = new ForeignKeyAssociationMappingConfiguration();

            Assert.Equal(
                Strings.ArgumentIsNullOrWhitespace("keyColumnName"),
                Assert.Throws <ArgumentException>(() => configuration.HasKeyAnnotation(null, "A", "V")).Message);

            Assert.Equal(
                Strings.ArgumentIsNullOrWhitespace("keyColumnName"),
                Assert.Throws <ArgumentException>(() => configuration.HasKeyAnnotation(" ", "A", "V")).Message);

            Assert.Equal(
                Strings.ArgumentIsNullOrWhitespace("annotationName"),
                Assert.Throws <ArgumentException>(() => configuration.HasKeyAnnotation("K", null, "V")).Message);

            Assert.Equal(
                Strings.ArgumentIsNullOrWhitespace("annotationName"),
                Assert.Throws <ArgumentException>(() => configuration.HasKeyAnnotation("K", " ", "V")).Message);
        }