Skip to content

Commit bbc6575

Browse files
committed
added Asn1BitString tests
1 parent 426a360 commit bbc6575

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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

Comments
 (0)