private void GivenPropertyValue()
        {
            var schemaName = Guid.NewGuid().ToString();
            var value      = Guid.NewGuid().ToString();

            _op = new UpdateExtendedPropertyOperation(schemaName, Name, value);
        }
        public void ShouldRemoveIfUpdatingSchemaPropertyAndSchemaGettingRemoved()
        {
            var op             = new UpdateExtendedPropertyOperation("schema", "name", "value");
            var removeSchemaOp = new RemoveSchemaOperation("SCHEMA");

            op.Merge(removeSchemaOp);
            Assert.That(op.Disabled, Is.True);
            Assert.That(removeSchemaOp.Disabled, Is.False);
        }
        private void GivenTablePropertyValue()
        {
            var schemaName = Guid.NewGuid().ToString();
            var tableName  = Guid.NewGuid().ToString();
            var name       = Guid.NewGuid().ToString();
            var value      = Guid.NewGuid().ToString();

            _op = new UpdateExtendedPropertyOperation(schemaName, tableName, name, value, false);
        }
        public void ShouldUpdateTableOrViewColumnPropertyIfUpdatedByMerge(bool forView)
        {
            var op       = new AddExtendedPropertyOperation("schema", "tableorview", "column", "name", "value", forView);
            var updateOp = new UpdateExtendedPropertyOperation("SCHEMA", "TABLEORVIEW", "COLUMN", "NAME", "newvalue", forView);

            op.Merge(updateOp);
            Assert.That(op.Disabled, Is.False);
            Assert.That(updateOp.Disabled, Is.True);
            Assert.That(op.Value, Is.EqualTo("newvalue"));
        }
        public void ShouldUpdateSchemaPropertyIfUpdatedByMerge()
        {
            var op       = new AddExtendedPropertyOperation("schema", "name", "value");
            var updateOp = new UpdateExtendedPropertyOperation("SCHEMA", "NAME", "newvalue");

            op.Merge(updateOp);
            Assert.That(op.Disabled, Is.False);
            Assert.That(updateOp.Disabled, Is.True);
            Assert.That(op.Value, Is.EqualTo("newvalue"));
        }
        private void GivenViewColumnPropertyValue()
        {
            var schemaName = Guid.NewGuid().ToString();
            var viewName   = Guid.NewGuid().ToString();
            var columnName = Guid.NewGuid().ToString();
            var name       = Guid.NewGuid().ToString();
            var value      = Guid.NewGuid().ToString();

            _op = new UpdateExtendedPropertyOperation(schemaName, viewName, columnName, name, value, true);
        }
        public void ShouldSetPropertiesForUpdateExtendedProperty()
        {
            //For Schema
            var op = new UpdateExtendedPropertyOperation(SchemaName, Name, Value);

            Assert.AreEqual(true, op.ForSchema);
            Assert.AreEqual(SchemaName, op.SchemaName);
            Assert.AreEqual(Name, op.Name);
            Assert.AreEqual(Value, op.Value);
            Assert.That(op.TableViewObjectName, Is.Empty);

            //For Table
            op = new UpdateExtendedPropertyOperation(SchemaName, TableName, Name, Value, false);
            Assert.AreEqual(true, op.ForTable);
            Assert.AreEqual(SchemaName, op.SchemaName);
            Assert.AreEqual(TableName, op.TableViewName);
            Assert.AreEqual(Name, op.Name);
            Assert.AreEqual(Value, op.Value);
            Assert.That(op.TableViewObjectName, Is.EqualTo($"{SchemaName}.{TableName}"));

            //For View
            op = new UpdateExtendedPropertyOperation(SchemaName, ViewName, Name, Value, true);
            Assert.AreEqual(true, op.ForView);
            Assert.AreEqual(SchemaName, op.SchemaName);
            Assert.AreEqual(ViewName, op.TableViewName);
            Assert.AreEqual(Name, op.Name);
            Assert.AreEqual(Value, op.Value);
            Assert.That(op.TableViewObjectName, Is.EqualTo($"{SchemaName}.{ViewName}"));

            //For Column
            op = new UpdateExtendedPropertyOperation(SchemaName, TableName, ColumnName, Name, Value, false);
            Assert.AreEqual(true, op.ForColumn);
            Assert.AreEqual(SchemaName, op.SchemaName);
            Assert.AreEqual(TableName, op.TableViewName);
            Assert.AreEqual(ColumnName, op.ColumnName);
            Assert.AreEqual(Name, op.Name);
            Assert.AreEqual(Value, op.Value);
            Assert.That(op.TableViewObjectName, Is.EqualTo($"{SchemaName}.{TableName}"));
        }