public void AddColumnInformationTest()
        {
            OutputColumn          target        = new OutputColumn();
            IDTSBufferManager100  bufferManager = new BufferManagerTestImpl();
            IDTSOutput100         output        = new OutputTestImpl();
            IDTSInput100          input         = new InputTestImpl();
            IDTSOutputColumn100   outputColumn;
            IDTSCustomProperty100 customProperty;
            int outputColumnIndex = 0;

            outputColumn         = output.OutputColumnCollection.New();
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.HashTypePropName;
            customProperty.Value = MultipleHash.HashTypeEnumerator.MD5;
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.InputColumnLineagePropName;
            customProperty.Value = "#1,#2,#3,#4,#5,#6";
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.OutputColumnOutputTypePropName;
            customProperty.Value = MultipleHash.OutputTypeEnumerator.Binary;

            target.AddColumnInformation(bufferManager, output, input, outputColumnIndex);
            Assert.AreEqual(6, target.Count, "The number of items in the list");
            Assert.AreEqual(1, target[0].ColumnId, "The first input");
            Assert.AreEqual(2, target[1].ColumnId, "The second input");
            Assert.AreEqual(3, target[2].ColumnId, "The third input");
            Assert.AreEqual(4, target[3].ColumnId, "The forth input");
            Assert.AreEqual(5, target[4].ColumnId, "The fifth input");
            Assert.AreEqual(6, target[5].ColumnId, "The sixth input");
            Assert.AreEqual(MultipleHash.HashTypeEnumerator.MD5, target.HashType, "Hash");
            Assert.AreEqual(MD5.Create().ToString(), target.HashObject.ToString(), "Hash Object");
        }
        public void AddColumnInformationTestErrors()
        {
            OutputColumn          target        = new OutputColumn();
            IDTSBufferManager100  bufferManager = new BufferManagerTestImpl();
            IDTSOutput100         output        = new OutputTestImpl();
            IDTSInput100          input         = new InputTestImpl();
            IDTSOutputColumn100   outputColumn;
            IDTSCustomProperty100 customProperty;
            int outputColumnIndex = 0;

            outputColumn         = output.OutputColumnCollection.New();
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.HashTypePropName;
            customProperty.Value = MultipleHash.HashTypeEnumerator.MD5;
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.InputColumnLineagePropName;
            customProperty.Value = "#1,#2,#3,#4,#5,#6";

            try
            {
                target.AddColumnInformation(null, output, input, outputColumnIndex);
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Value cannot be null.\r\nParameter name: bufferManager", ex.Message);
            }

            try
            {
                target.AddColumnInformation(bufferManager, null, input, outputColumnIndex);
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Value cannot be null.\r\nParameter name: output", ex.Message);
            }
            try
            {
                target.AddColumnInformation(bufferManager, output, null, outputColumnIndex);
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Value cannot be null.\r\nParameter name: input", ex.Message);
            }
        }
        public void AddColumnInformationTestHashTypes()
        {
            OutputColumn          target        = new OutputColumn();
            IDTSBufferManager100  bufferManager = new BufferManagerTestImpl();
            IDTSOutput100         output        = new OutputTestImpl();
            IDTSInput100          input         = new InputTestImpl();
            IDTSOutputColumn100   outputColumn;
            IDTSCustomProperty100 customProperty;
            int outputColumnIndex = 0;

            outputColumn         = output.OutputColumnCollection.New();
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.InputColumnLineagePropName;
            customProperty.Value = "#1,#2,#3,#4,#5,#6";
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.OutputColumnOutputTypePropName;
            customProperty.Value = MultipleHash.OutputTypeEnumerator.Binary;
            customProperty       = outputColumn.CustomPropertyCollection.New();
            customProperty.Name  = Utility.HashTypePropName;
            customProperty.Value = MultipleHash.HashTypeEnumerator.SHA1;

            target.AddColumnInformation(bufferManager, output, input, outputColumnIndex);
            Assert.AreEqual(MultipleHash.HashTypeEnumerator.SHA1, target.HashType, "Hash");
            Assert.AreEqual(SHA1.Create().ToString(), target.HashObject.ToString(), "Hash Object");
            customProperty.Value = MultipleHash.HashTypeEnumerator.SHA256;
            target.AddColumnInformation(bufferManager, output, input, outputColumnIndex);
            Assert.AreEqual(MultipleHash.HashTypeEnumerator.SHA256, target.HashType, "Hash");
            Assert.AreEqual(SHA256.Create().ToString(), target.HashObject.ToString(), "Hash Object");
            customProperty.Value = MultipleHash.HashTypeEnumerator.SHA384;
            target.AddColumnInformation(bufferManager, output, input, outputColumnIndex);
            Assert.AreEqual(MultipleHash.HashTypeEnumerator.SHA384, target.HashType, "Hash");
            Assert.AreEqual(SHA384.Create().ToString(), target.HashObject.ToString(), "Hash Object");
            customProperty.Value = MultipleHash.HashTypeEnumerator.SHA512;
            target.AddColumnInformation(bufferManager, output, input, outputColumnIndex);
            Assert.AreEqual(MultipleHash.HashTypeEnumerator.SHA512, target.HashType, "Hash");
            Assert.AreEqual(SHA512.Create().ToString(), target.HashObject.ToString(), "Hash Object");
            customProperty.Value = MultipleHash.HashTypeEnumerator.None;
            target.AddColumnInformation(bufferManager, output, input, outputColumnIndex);
            Assert.AreEqual(MultipleHash.HashTypeEnumerator.None, target.HashType, "Hash");
            Assert.AreEqual(null, target.HashObject, "Hash Object");
        }
Exemple #4
0
        public void SetOutputColumnDataTypeTest()
        {
            IDTSOutput100       output = new OutputTestImpl();
            IDTSOutputColumn100 outputColumn;

            outputColumn = output.OutputColumnCollection.New();

            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.None, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(16, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.MD5, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(16, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA1, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(20, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.RipeMD160, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(20, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA256, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(32, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA384, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(48, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA512, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(64, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.CRC32, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(4, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.CRC32C, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(4, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.FNV1a32, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(4, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.FNV1a64, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(8, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.MurmurHash3a, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);  // MurmurHash3a using 128bit hash result.  (See this for code https://github.com/brandondahler/Data.HashFunction/blob/master/src/MurmurHash/MurmurHash3.cs)
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(16, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.xxHash, MultipleHash.OutputTypeEnumerator.Binary, outputColumn);  // xxHash using 64bit hash result. (see this for code https://github.com/brandondahler/Data.HashFunction/blob/master/src/xxHash/xxHash.cs)
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_BYTES, outputColumn.DataType, "DT_BYTES wasn't set as data type");
            Assert.AreEqual(8, outputColumn.Length, "Length wasn't set correctly");

            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.None, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(34, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.MD5, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(34, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA1, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(42, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.RipeMD160, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(42, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA256, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(66, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA384, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(98, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA512, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(130, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.CRC32, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(10, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.CRC32C, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(10, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.FNV1a32, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(10, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.FNV1a64, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(18, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.MurmurHash3a, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);  // MurmurHash3a using 128bit hash result.  (See this for code https://github.com/brandondahler/Data.HashFunction/blob/master/src/MurmurHash/MurmurHash3.cs)
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(34, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.xxHash, MultipleHash.OutputTypeEnumerator.HexString, outputColumn);  // xxHash using 64bit hash result. (see this for code https://github.com/brandondahler/Data.HashFunction/blob/master/src/xxHash/xxHash.cs)
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(18, outputColumn.Length, "Length wasn't set correctly");

            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.None, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(24, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.MD5, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(24, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA1, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(28, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.RipeMD160, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(28, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA256, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(44, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA384, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(64, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.SHA512, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(88, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.CRC32, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(8, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.CRC32C, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(8, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.FNV1a32, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(8, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.FNV1a64, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(12, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.MurmurHash3a, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);  // MurmurHash3a using 128bit hash result.  (See this for code https://github.com/brandondahler/Data.HashFunction/blob/master/src/MurmurHash/MurmurHash3.cs)
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(24, outputColumn.Length, "Length wasn't set correctly");
            Utility.SetOutputColumnDataType(MultipleHash.HashTypeEnumerator.xxHash, MultipleHash.OutputTypeEnumerator.Base64String, outputColumn);  // xxHash using 64bit hash result. (see this for code https://github.com/brandondahler/Data.HashFunction/blob/master/src/xxHash/xxHash.cs)
            Assert.AreEqual(Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType.DT_STR, outputColumn.DataType, "DT_STR wasn't set as data type");
            Assert.AreEqual(12, outputColumn.Length, "Length wasn't set correctly");
        }