Beispiel #1
0
        public void DifferentTablesGenerateDifferentResults()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());

            var resultString1 = service.Tokenize(TestString1, tokenTable).Value;

            tokenTable = GenerateTable(Size, Alphabet.English);
            var resultString2 = service.Tokenize(TestString1, tokenTable).Value;

            Assert.AreNotEqual(resultString1, resultString2);
        }
Beispiel #2
0
        public void StartOfStringIsNotConsistentWhenInLengthBasedConsistentMode()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());

            var resultString1 = service.Tokenize(TestString1, tokenTable).Value;
            var resultString2 = service.Tokenize(TestString2, tokenTable).Value;
            var resultString3 = service.Tokenize(TestString3, tokenTable).Value;

            Assert.IsFalse(resultString2.StartsWith(resultString1));
            Assert.IsFalse(resultString3.StartsWith(resultString1));
            Assert.IsFalse(resultString3.StartsWith(resultString2));
        }
Beispiel #3
0
        public void CanHandleABasicMask()
        {
            var tokenTable = GenerateTable(Size, Alphabet.Numbers);
            var mask       = "****-****-****-****-****-^^^^";
            var service    = new BasicService(new ServiceSettings {
                Mask = Mask.Parse(mask)
            });
            var result = service.Tokenize(TestNumbers, tokenTable);

            Assert.AreEqual(TestNumbers.Length, result.Value.Length);

            var splitTest   = TestNumbers.Split('-');
            var splitResult = result.Value.Split('-');
            var splitMask   = mask.Split('-');

            for (var i = 0; i < splitTest.Length; i++)
            {
                if (splitMask[i] == "****")
                {
                    Assert.AreNotEqual(splitTest[i], splitResult[i]);
                }
                if (splitMask[i] == "^^^^")
                {
                    Assert.AreEqual(splitTest[i], splitResult[i]);
                }
            }
        }
Beispiel #4
0
        public void CanHandleAnAdvancedMaskWithNoSeparators()
        {
            var tokenTable = GenerateTable(Size, Alphabet.Numbers);
            var mask       = Mask.Parse("{{4^}}{{21*}}{{4^}}");
            var service    = new BasicService(new ServiceSettings {
                Mask = mask
            });
            var result = service.Tokenize(TestNumbers, tokenTable);

            Assert.AreEqual(TestNumbers.Length, result.Value.Length);

            var splitTest   = TestNumbers.Split('-');
            var splitResult = result.Value.Split('-');

            for (var i = 0; i < splitTest.Length; i++)
            {
                if (i != 0 && i < splitTest.Length - 1)
                {
                    Assert.AreNotEqual(splitTest[i], splitResult[i]);
                }
                else
                {
                    Assert.AreEqual(splitTest[i], splitResult[i]);
                }
            }
        }
Beispiel #5
0
        public void ZeroLengthStringIsHandled()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());
            var result     = service.Tokenize(string.Empty, tokenTable);

            Assert.AreEqual(0, result.Value.Length);
        }
Beispiel #6
0
        public void PercentageIs0WhenNoneReplaced()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());
            var result     = service.Tokenize(TestStringNoneReplaced, tokenTable);

            Assert.AreEqual(0, result.PercentReplaced);
        }
Beispiel #7
0
        public void FlagIndicatesWhenNotFullyReplaced()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());
            var result     = service.Tokenize(TestString1, tokenTable);

            Assert.IsFalse(result.AllTextReplaced);
        }
Beispiel #8
0
        public void NullStringIsHandled()
        {
            var    tokenTable = GenerateTable(Size, Alphabet.English);
            var    service    = new BasicService(new ServiceSettings());
            string testString = null;
            var    result     = service.Tokenize(testString, tokenTable);

            Assert.AreEqual(0, result.Value.Length);
        }
Beispiel #9
0
        public void CanTokeniseABasicString()
        {
            var tokenTable   = GenerateTable(Size, Alphabet.English);
            var service      = new BasicService(new ServiceSettings());
            var resultString = service.Tokenize(TestString1, tokenTable).Value;

            Assert.AreEqual(TestString1.Length, resultString.Length);
            Assert.AreNotEqual(TestString1, resultString);
        }
Beispiel #10
0
        public void CanHandleAMaskMismatch()
        {
            var tokenTable = GenerateTable(Size, Alphabet.Numbers);
            var mask       = "****-****-****-****-****-^^^";
            var service    = new BasicService(new ServiceSettings {
                Mask = Mask.Parse(mask)
            });
            var exception = Assert.ThrowsException <Exception>(() => service.Tokenize(TestNumbers, tokenTable));

            Assert.AreEqual("Mask Length does not match the source string length.", exception.Message);
        }
Beispiel #11
0
        public void CanHandleAMaskMismatchForMatchAndKeep()
        {
            var tokenTable = GenerateTable(Size, Alphabet.Numbers);
            var mask       = "****-****-****-****-*****-^^^";
            var service    = new BasicService(new ServiceSettings {
                Mask = Mask.Parse(mask)
            });
            var exception = Assert.ThrowsException <Exception>(() => service.Tokenize(TestNumbers, tokenTable));

            Assert.AreEqual("Mask is set to MustMatchAndKeep does not match. Expected: - Found: 5", exception.Message);
        }
Beispiel #12
0
        public void CanDeTokeniseABasicStringInConsistentMode()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings {
                Behaviour = Behaviour.Consistent
            });
            var resultString = service.Tokenize(TestString1, tokenTable).Value;

            resultString = service.Detokenize(new BasicRequest(resultString), tokenTable).Value;
            Assert.AreEqual(TestString1, resultString);
        }
Beispiel #13
0
        public void CanDeTokeniseABasicStringInLengthBasedInconsistentModeAndActionTypeIsCorrect()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());
            var result     = service.Tokenize(TestString1, tokenTable);

            Assert.AreEqual(ActionType.Tokenize, result.Action);
            var resultString = result.Value;

            result       = service.Detokenize(new BasicRequest(resultString), tokenTable);
            resultString = result.Value;
            Assert.AreEqual(ActionType.Detokenize, result.Action);
            Assert.AreEqual(TestString1, resultString);
        }
Beispiel #14
0
        public void CanHandleStringsLongerThanArrayLength()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings());
            var testString = TestString1;

            while (testString.Length < tokenTable.ForwardTable.Count)
            {
                testString += TestString1;
            }
            var resultString = service.Tokenize(testString, tokenTable).Value;

            Assert.AreEqual(testString.Length, resultString.Length);
            Assert.AreNotEqual(testString, resultString);
        }
Beispiel #15
0
        public void CanHandleBasicMaskWithCurlyBraces()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var mask       = Mask.Parse("{********}");
            var testString = "{TestMask}";
            var service    = new BasicService(new ServiceSettings {
                Mask = mask
            });
            var result = service.Tokenize(testString, tokenTable);

            Assert.AreEqual(testString.Length, result.Value.Length);
            Assert.AreEqual('{', result.Value[0]);
            Assert.AreEqual('}', result.Value[9]);
            Assert.IsFalse(result.Value.Contains("TestMask"));
        }
Beispiel #16
0
        public void CanTokeniseABasicNumber()
        {
            var tokenTable   = GenerateTable(Size, Alphabet.Numbers);
            var service      = new BasicService(new ServiceSettings());
            var resultString = service.Tokenize(TestNumbers, tokenTable).Value;

            Assert.AreEqual(TestNumbers.Length, resultString.Length);
            Assert.AreNotEqual(TestNumbers, resultString);
            for (var i = 0; i < TestNumbers.Length; i++)
            {
                if (TestNumbers[i] != '-')
                {
                    Assert.IsTrue(char.IsDigit(resultString[i]));
                }
            }
        }
Beispiel #17
0
        public void CanDeTokeniseABasicStringInRandomSeedInconsistentModeAndEncrypted()
        {
            var tokenTable = GenerateTable(Size, Alphabet.English);
            var service    = new BasicService(new ServiceSettings()
            {
                Behaviour = Behaviour.RandomSeedInconsistent, Encrypt = true, Key = Key, IV = IV
            }, new Encryption(), new Compression());
            var result = service.Tokenize(TestString1, tokenTable);

            Assert.AreEqual(ActionType.Tokenize, result.Action);
            var resultString = result.Value;

            result       = service.Detokenize(new BasicRequest(resultString), tokenTable);
            resultString = result.Value;
            Assert.AreEqual(ActionType.Detokenize, result.Action);
            Assert.AreEqual(TestString1, resultString);
        }