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