예제 #1
0
        public static void ParentKey_PropertyGet_EqualsCtorArg()
        {
            const string            childTableName  = "child_table";
            const string            parentTableName = "parent_table";
            const ReferentialAction deleteAction    = ReferentialAction.Cascade;
            const ReferentialAction updateAction    = ReferentialAction.SetNull;
            Identifier keyName = "test_parent_key";

            var childKeyMock = new Mock <IDatabaseKey>();

            childKeyMock.Setup(k => k.KeyType).Returns(DatabaseKeyType.Foreign);
            var childKey = childKeyMock.Object;

            var parentKeyMock = new Mock <IDatabaseKey>();

            parentKeyMock.Setup(k => k.KeyType).Returns(DatabaseKeyType.Primary);
            parentKeyMock.Setup(t => t.Name).Returns(keyName);
            var parentKey = parentKeyMock.Object;

            var relationalKey = new MySqlRelationalKey(childTableName, childKey, parentTableName, parentKey, deleteAction, updateAction);

            Assert.Multiple(() =>
            {
                Assert.That(relationalKey.ParentKey.Name.UnwrapSome(), Is.EqualTo(keyName));
                Assert.That(relationalKey.ParentKey, Is.EqualTo(parentKey));
            });
        }
예제 #2
0
        public static void ChildTable_PropertyGet_EqualsCtorArg()
        {
            const string            childTableName  = "child_table";
            const string            parentTableName = "parent_table";
            const ReferentialAction deleteAction    = ReferentialAction.NoAction;
            const ReferentialAction updateAction    = ReferentialAction.NoAction;

            var childKeyMock = new Mock <IDatabaseKey>();

            childKeyMock.Setup(k => k.KeyType).Returns(DatabaseKeyType.Foreign);
            var childKey = childKeyMock.Object;

            var parentKeyMock = new Mock <IDatabaseKey>();

            parentKeyMock.Setup(k => k.KeyType).Returns(DatabaseKeyType.Primary);
            var parentKey = parentKeyMock.Object;

            var relationalKey = new MySqlRelationalKey(childTableName, childKey, parentTableName, parentKey, deleteAction, updateAction);

            Assert.That(relationalKey.ChildTable, Is.EqualTo(new Identifier(childTableName)));
        }
예제 #3
0
        public static void ToString_WhenInvoked_ReturnsExpectedValues(
            string childTableSchema,
            string childTableLocal,
            string childKeyName,
            string parentTableSchema,
            string parentTableLocal,
            string parentKeyName,
            string expectedResult
            )
        {
            var childTableName     = Identifier.CreateQualifiedIdentifier(childTableSchema, childTableLocal);
            var childKeyIdentifier = !childKeyName.IsNullOrWhiteSpace()
                ? Option <Identifier> .Some(Identifier.CreateQualifiedIdentifier(childKeyName))
                : Option <Identifier> .None;

            var parentTableName     = Identifier.CreateQualifiedIdentifier(parentTableSchema, parentTableLocal);
            var parentKeyIdentifier = !parentKeyName.IsNullOrWhiteSpace()
                ? Option <Identifier> .Some(Identifier.CreateQualifiedIdentifier(parentKeyName))
                : Option <Identifier> .None;

            var childKeyMock = new Mock <IDatabaseKey>();

            childKeyMock.Setup(k => k.Name).Returns(childKeyIdentifier);
            childKeyMock.Setup(k => k.KeyType).Returns(DatabaseKeyType.Foreign);

            var parentKeyMock = new Mock <IDatabaseKey>();

            parentKeyMock.Setup(k => k.Name).Returns(parentKeyIdentifier);
            parentKeyMock.Setup(k => k.KeyType).Returns(DatabaseKeyType.Primary);

            const ReferentialAction deleteAction = ReferentialAction.NoAction;
            const ReferentialAction updateAction = ReferentialAction.NoAction;

            var key    = new MySqlRelationalKey(childTableName, childKeyMock.Object, parentTableName, parentKeyMock.Object, deleteAction, updateAction);
            var result = key.ToString();

            Assert.That(result, Is.EqualTo(expectedResult));
        }