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"); }
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"); }