|
| 1 | +using System; |
| 2 | +using Microsoft.VisualStudio.TestTools.UnitTesting; |
| 3 | +using SysadminsLV.Asn1Parser.Universal; |
| 4 | + |
| 5 | +namespace Asn1Parser.Tests; |
| 6 | +[TestClass] |
| 7 | +public class Asn1BitStringTests { |
| 8 | + [TestMethod] |
| 9 | + public void TestUnusedBitsCalculator() { |
| 10 | + Byte unusedBits = Asn1BitString.CalculateUnusedBits([0x1]); |
| 11 | + Assert.AreEqual(0, unusedBits); |
| 12 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x2]); |
| 13 | + Assert.AreEqual(1, unusedBits); |
| 14 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x4]); |
| 15 | + Assert.AreEqual(2, unusedBits); |
| 16 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x8]); |
| 17 | + Assert.AreEqual(3, unusedBits); |
| 18 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x10]); |
| 19 | + Assert.AreEqual(4, unusedBits); |
| 20 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x20]); |
| 21 | + Assert.AreEqual(5, unusedBits); |
| 22 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x40]); |
| 23 | + Assert.AreEqual(6, unusedBits); |
| 24 | + unusedBits = Asn1BitString.CalculateUnusedBits([0x80]); |
| 25 | + Assert.AreEqual(7, unusedBits); |
| 26 | + } |
| 27 | + [TestMethod] |
| 28 | + public void TestBitStringDecodeFromByteArray() { |
| 29 | + Byte[] array = [3, 2, 5, 0xa0]; |
| 30 | + var bitString = new Asn1BitString(array); |
| 31 | + Assert.AreEqual(5, bitString.UnusedBits); |
| 32 | + Assert.IsTrue(array.AsSpan().Slice(3,1).SequenceEqual(bitString.GetValue().Span)); |
| 33 | + Assert.IsTrue(array.AsSpan().Slice(2, 2).SequenceEqual(bitString.GetPayloadAsMemory().Span)); |
| 34 | + Assert.IsTrue(array.AsSpan().SequenceEqual(bitString.GetRawDataAsMemory().Span)); |
| 35 | + } |
| 36 | +} |
0 commit comments