#
# Masking Smoke
#
# We expect the masking rules to be as follows:
#
# {
#     "rules": [
#         {
#             "replace": {
#                 "column": "a"
#             },
#             "with": {
#                 "fill": "Y"
#             }
#         },
#         {
#             "replace": {
#                 "column": "b"
#             },
#             "with": {
#                "value": "012345-ABCD"
#             }
#         },
#         {
#            "replace": {
#                 "column": "c"
#             },
#             "with": {
#                 "value": "012345-ABCD",
#                 "fill": "Y"
#             }
#         }
#     ]
# }

--disable_warnings
drop database if exists maskingdb;
--enable_warnings

create database maskingdb;
use maskingdb;

#
# Each table contains a single column 'a' of a type subject
# to masking.
#
create table masking (a TEXT, b TEXT, c TEXT);

# - a should be just "Y...",
# - b should be changed into "X..." as the length does not match and there is no
#   specific fill value, so the default "X" is used.
# - c should be just "Y..." as the length does not match, so "value" is not applied
#   and has "fill", which is applied.
#
#a	b	c
#YYYY	XXXXXXXXXX	YYYYYYYYYY
insert into masking values ("blah", "012345-ABC", "012345-ABC");
select * from masking;
delete from masking;

# - a should be just "Y...",
# - b should be changed as the length matches the length of the string of "value"
# - c should be just "Y..." as the length does not match, so "value" is not applied
#   and has "fill", which is applied.
#
#a	b	c
#YYYYYYYY	012345-ABCD	YYYYYYYYYY
insert into masking values ("blahblah", "221073-01AB", "012345-ABC");
select * from masking;
delete from masking;

# - a should be just "Y...",
# - b should be changed as the length matches the length of the string of "value"
# - c should be chanched into a specific string as the length matches the string of
#   "value"
#
#a	b	c
#a	b	c
#YYYYYYYYYYY	012345-ABCD	012345-ABCD
# a should still be just "Y", b should be "012345-ABCD" and c should be "012345-ABCD"
insert into masking values ("221073-01AB", "221073-01AB", "221073-01AB");
select * from masking;
delete from masking;
