From d88967cf4a67917ad5b3169f079f93fd6de09aa6 Mon Sep 17 00:00:00 2001 From: v-kaywon Date: Tue, 13 Mar 2018 16:15:42 -0700 Subject: [PATCH] address review comments --- .../pdo_ae_bindColumn_pdoparam_binary_size.phpt | 2 +- .../pdo_ae_bindColumn_pdoparam_datetime.phpt | 1 + .../pdo_ae_insert_pdoparam_char_size.phpt | 13 ++++++++----- .../pdo_ae_insert_pdoparam_nchar_size.phpt | 5 ++++- .../sqlsrv/sqlsrv_ae_insert_sqltype_char_size.phpt | 3 +++ .../sqlsrv/sqlsrv_ae_insert_sqltype_int_conv.phpt | 3 +++ .../sqlsrv/sqlsrv_ae_insert_sqltype_nchar_size.phpt | 3 +++ 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_binary_size.phpt b/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_binary_size.phpt index 130c9773..253460ea 100644 --- a/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_binary_size.phpt +++ b/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_binary_size.phpt @@ -55,7 +55,7 @@ try { // check the case when fetching as PDO::PARAM_STR or PDO::PARAM_LOB // with or without AE: should work } else { - if (strlen($det) == $m && strlen($rand) == $m) { + if (trim($det) == $inputValues[0] && trim($rand) == $inputValues[1]) { echo "****Retrieving $typeFull data as $pdoParamType is supported****\n"; } else { echo "Retrieving $typeFull data as $pdoParamType fails\n"; diff --git a/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_datetime.phpt b/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_datetime.phpt index 3c71a781..b1cf8235 100644 --- a/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_datetime.phpt +++ b/test/functional/pdo_sqlsrv/pdo_ae_bindColumn_pdoparam_datetime.phpt @@ -44,6 +44,7 @@ try { echo "Retrieving $dataType data as $pdoParamType should not be supported\n"; } // check the case when fetching as PDO::PARAM_STR or PDO::PARAM_LOB + // only check if input values are part of fetched values because some input values do not contain any deicmal places, the value retrieved however has 3 decimal places if the type is a datetime // with or without AE: should work } else { if (strpos($det, $inputValues[0]) !== false && strpos($rand, $inputValues[1]) !== false) { diff --git a/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_char_size.phpt b/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_char_size.phpt index 87bdb843..9adfb606 100644 --- a/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_char_size.phpt +++ b/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_char_size.phpt @@ -3,10 +3,10 @@ Test for inserting encrypted data into char types columns with different sizes --DESCRIPTION-- Test conversions between different char types of different sizes With or without Always Encrypted, implicit conversion works if: -1. From input of PDO::PARAM_BOOL to a any char column -2. From input of PDO::PARAM_INT to a any char column -3. From input of PDO::PARAM_STR to a any char column -4. From input of PDO::PARAM_LOB to a any char column +1. From input of PDO::PARAM_BOOL to any char column +2. From input of PDO::PARAM_INT to any char column +3. From input of PDO::PARAM_STR to any char column +4. From input of PDO::PARAM_LOB to any char column --SKIPIF-- --FILE-- @@ -29,7 +29,10 @@ try { } echo "\nTesting $typeFull:\n"; - //create table containing char(m) or varchar(m) columns + // create table containing a char(m) or varchar(m) column + // only one column is created because a row has a limitation of 8060 bytes + // for lengths 4096 and 8000, cannot create 2 columns as it will exceed the maximum row sizes + // for AE, only testing randomized here, deterministic is tested in the nchar test $tbname = getTableName("test_" . str_replace(array('(', ')'), '', $dataType) . $m); $colMetaArr = array(new ColumnMeta($typeFull, "c1", null, "randomized")); createTable($conn, $tbname, $colMetaArr); diff --git a/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_nchar_size.phpt b/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_nchar_size.phpt index 6d46b429..4b57eb3f 100644 --- a/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_nchar_size.phpt +++ b/test/functional/pdo_sqlsrv/pdo_ae_insert_pdoparam_nchar_size.phpt @@ -29,7 +29,10 @@ try { } echo "\nTesting $typeFull:\n"; - //create table containing nchar(m) or nvarchar(m) columns + // create table containing nchar(m) or nvarchar(m) columns + // only one column is created because a row has a limitation of 8060 bytes + // for lengths 4096 and 8000, cannot create 2 columns as it will exceed the maximum row sizes + // for AE, only testing deterministic here, randomized is tested in the char test $tbname = "test_" . str_replace(array('(', ')'), '', $dataType) . $m; $colMetaArr = array(new ColumnMeta($typeFull, "c1")); createTable($conn, $tbname, $colMetaArr); diff --git a/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_char_size.phpt b/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_char_size.phpt index bf8c127e..8465ff05 100644 --- a/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_char_size.phpt +++ b/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_char_size.phpt @@ -32,6 +32,9 @@ foreach($dataTypes as $dataType) { echo "\nTesting $typeFull:\n"; // create table containing char(m) or varchar(m) columns + // only one column is created because a row has a limitation of 8060 bytes + // for lengths 4096 and 8000, cannot create 2 columns as it will exceed the maximum row sizes + // for AE, only testing deterministic here, randomized is tested in the nchar test $tbname = "test_" . str_replace(array('(', ')'), '', $dataType) . $m; $colMetaArr = array(new AE\ColumnMeta($typeFull, "c1")); AE\createTable($conn, $tbname, $colMetaArr); diff --git a/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_int_conv.phpt b/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_int_conv.phpt index a42a4e53..1bb3153c 100644 --- a/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_int_conv.phpt +++ b/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_int_conv.phpt @@ -27,6 +27,9 @@ require_once('MsCommon.inc'); $dataTypes = array("bit", "tinyint", "smallint", "int", "bigint"); $sqlTypes = array("SQLSRV_SQLTYPE_BIT", "SQLSRV_SQLTYPE_TINYINT", "SQLSRV_SQLTYPE_SMALLINT", "SQLSRV_SQLTYPE_INT", "SQLSRV_SQLTYPE_BIGINT"); +// only 1 and 0 inputs are tested as they are the only values that fit into all integer types +// this test is for testing different integer conversions, if the input value does not fit into a datatype, +// the conversion would fail not because the conversion is not supported, but because of other errors such as truncation $inputValues = array(1, 0); // this is a list of implicit datatype conversion that AE supports diff --git a/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_nchar_size.phpt b/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_nchar_size.phpt index c09a6417..6718f7e6 100644 --- a/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_nchar_size.phpt +++ b/test/functional/sqlsrv/sqlsrv_ae_insert_sqltype_nchar_size.phpt @@ -32,6 +32,9 @@ foreach($dataTypes as $dataType) { echo "\nTesting $typeFull:\n"; // create table containing nchar(m) or nvarchar(m) columns + // only one column is created because a row has a limitation of 8060 bytes + // for lengths 4096 and 8000, cannot create 2 columns as it will exceed the maximum row sizes + // for AE, only testing randomized here, deterministic is tested in the char test $tbname = "test_" . str_replace(array('(', ')'), '', $dataType) . $m; $colMetaArr = array(new AE\ColumnMeta($typeFull, "c1", null, false)); AE\createTable($conn, $tbname, $colMetaArr);