//------------------------------------------------------------------------------------ // // Copyright 2011 Stephen Jennings. Licensed under the Apache License, Version 2.0. // //------------------------------------------------------------------------------------ namespace OathNet.Test { using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; public class Base32Tests { [Test] public void ToBase32_10_bytes_1() { var binary = new byte[] { 0xDE, 0xAD, 0xBE, 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var expected = "32W3532IMVWGY3ZB"; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_10_bytes_2() { var binary = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var expected = "JBSWY3DPEHPK3PXP"; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_9_bytes_1() { var binary = new byte[] { 0xAD, 0xBE, 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var expected = "VW7O6SDFNRWG6II="; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_9_bytes_2() { var binary = new byte[] { 0x65, 0x6C, 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var expected = "MVWGY3ZB32W353Y="; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_8_bytes_1() { var binary = new byte[] { 0xBE, 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var expected = "X3XUQZLMNRXSC==="; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_8_bytes_2() { var binary = new byte[] { 0x6C, 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var expected = "NRWG6IO6VW7O6==="; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_7_bytes_1() { var binary = new byte[] { 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var expected = "55EGK3DMN4QQ===="; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_7_bytes_2() { var binary = new byte[] { 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var expected = "NRXSDXVNX3XQ===="; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_6_bytes_1() { var binary = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var expected = "JBSWY3DPEE======"; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBase32_6_bytes_2() { var binary = new byte[] { 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var expected = "N4Q55LN654======"; var actual = Base32.ToBase32(binary); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_10_bytes_1() { var expected = new byte[] { 0xDE, 0xAD, 0xBE, 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var base32 = "32W3532IMVWGY3ZB"; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_10_bytes_2() { var expected = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var base32 = "JBSWY3DPEHPK3PXP"; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_9_bytes_1() { var expected = new byte[] { 0xAD, 0xBE, 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var base32 = "VW7O6SDFNRWG6II="; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_9_bytes_2() { var expected = new byte[] { 0x65, 0x6C, 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var base32 = "MVWGY3ZB32W353Y="; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_8_bytes_1() { var expected = new byte[] { 0xBE, 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var base32 = "X3XUQZLMNRXSC==="; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_8_bytes_2() { var expected = new byte[] { 0x6C, 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var base32 = "NRWG6IO6VW7O6==="; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_7_bytes_1() { var expected = new byte[] { 0xEF, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var base32 = "55EGK3DMN4QQ===="; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_7_bytes_2() { var expected = new byte[] { 0x6C, 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var base32 = "NRXSDXVNX3XQ===="; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_6_bytes_1() { var expected = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21 }; var base32 = "JBSWY3DPEE======"; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_6_bytes_2() { var expected = new byte[] { 0x6F, 0x21, 0xDE, 0xAD, 0xBE, 0xEF }; var base32 = "N4Q55LN654======"; var actual = Base32.ToBinary(base32); Assert.AreEqual(expected, actual); } [Test] public void ToBinary_with_invalid_string_throws_ArgumentException() { var invalidChars = new List() { "1", "8", "9", "0", "`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "_", "+", "[", "]", "{", "}", "|", "\\", ";", ":", "'", "\"", ",", ".", "<", ">", "/", "?" }; foreach (var s in invalidChars) { Assert.Throws(() => new Key("ABCD" + s + "EFG"), "'" + s + "' is not part of the alphabet"); } } } }