plmn id handling improved
Change-Id: I20f0d6c347756a1f567c97b084d38240bc3a53bc
Signed-off-by: Juha Hyttinen <juha.hyttinen@nokia.com>
diff --git a/e2ap/pkg/conv/bcd_test.go b/e2ap/pkg/conv/bcd_test.go
index 4560dc7..fa2c61b 100644
--- a/e2ap/pkg/conv/bcd_test.go
+++ b/e2ap/pkg/conv/bcd_test.go
@@ -20,16 +20,24 @@
package conv
import (
+ "encoding/hex"
+ "fmt"
"os"
"testing"
)
-// Test cases
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
func TestMain(m *testing.M) {
code := m.Run()
os.Exit(code)
}
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+
func TestBcdEven(t *testing.T) {
bcd := NewBcd("0123456789??????")
@@ -38,6 +46,22 @@
t.Errorf("TestBcdEven: bcd Encode failed")
}
+ if bcdbuf[0] != 0x12 {
+ t.Errorf("TestBcdEven: bcdbuf[0] expected 0x12 got 0x%x", bcdbuf[0])
+ }
+
+ if bcdbuf[1] != 0x34 {
+ t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+ }
+
+ if bcdbuf[2] != 0x56 {
+ t.Errorf("TestBcdEven: bcdbuf[2] expected 0x56 got 0x%x", bcdbuf[2])
+ }
+
+ hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+ hex.Encode(hexdata, bcdbuf)
+ fmt.Printf("TestBcdEven: 123456 encoded data [%s]\n", string(hexdata))
+
bcdstr := bcd.Decode(bcdbuf)
if bcdstr != string("123456") {
t.Errorf("TestBcdEven: bcd Decode failed: got %s expect %s", bcdstr, string("123456"))
@@ -53,6 +77,22 @@
t.Errorf("TestBcdUnEven1: bcd Encode failed")
}
+ if bcdbuf[0] != 0x12 {
+ t.Errorf("TestBcdEven: bcdbuf[0] expected 0x12 got 0x%x", bcdbuf[0])
+ }
+
+ if bcdbuf[1] != 0x34 {
+ t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+ }
+
+ if bcdbuf[2] != 0x5f {
+ t.Errorf("TestBcdEven: bcdbuf[2] expected 0x5f got 0x%x", bcdbuf[2])
+ }
+
+ hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+ hex.Encode(hexdata, bcdbuf)
+ fmt.Printf("TestBcdUnEven1: 12345 encoded data [%s]\n", string(hexdata))
+
bcdstr := bcd.Decode(bcdbuf)
if bcdstr != string("12345?") {
t.Errorf("TestBcdUnEven1: bcd Decode failed: got %s expect %s", bcdstr, string("12345?"))
@@ -67,8 +107,118 @@
t.Errorf("TestBcdUnEven2: bcd Encode failed")
}
+ if bcdbuf[0] != 0x12 {
+ t.Errorf("TestBcdEven: bcdbuf[0] expected 0x12 got 0x%x", bcdbuf[0])
+ }
+
+ if bcdbuf[1] != 0x34 {
+ t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+ }
+
+ if bcdbuf[2] != 0x5f {
+ t.Errorf("TestBcdEven: bcdbuf[2] expected 0x5f got 0x%x", bcdbuf[2])
+ }
+
+ hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+ hex.Encode(hexdata, bcdbuf)
+ fmt.Printf("TestBcdUnEven2: 12345f encoded data [%s]\n", string(hexdata))
+
bcdstr := bcd.Decode(bcdbuf)
if bcdstr != string("12345f") {
t.Errorf("TestBcdUnEven2: bcd Decode failed: got %s expect %s", bcdstr, string("12345f"))
}
}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+func TestTbcdEven(t *testing.T) {
+
+ bcd := NewTbcd("0123456789??????")
+ bcdbuf := bcd.Encode("123456")
+ if len(bcdbuf) == 0 {
+ t.Errorf("TestTbcdEven: bcd Encode failed")
+ }
+
+ if bcdbuf[0] != 0x21 {
+ t.Errorf("TestBcdEven: bcdbuf[0] expected 0x21 got 0x%x", bcdbuf[0])
+ }
+
+ if bcdbuf[1] != 0x43 {
+ t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+ }
+
+ if bcdbuf[2] != 0x65 {
+ t.Errorf("TestBcdEven: bcdbuf[2] expected 0x65 got 0x%x", bcdbuf[2])
+ }
+
+ hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+ hex.Encode(hexdata, bcdbuf)
+ fmt.Printf("TestTbcdEven: 123456 encoded data [%s]\n", string(hexdata))
+
+ bcdstr := bcd.Decode(bcdbuf)
+ if bcdstr != string("123456") {
+ t.Errorf("TestTbcdEven: bcd Decode failed: got %s expect %s", bcdstr, string("123456"))
+ }
+
+}
+
+func TestTbcdUnEven1(t *testing.T) {
+
+ bcd := NewTbcd("0123456789??????")
+ bcdbuf := bcd.Encode("12345")
+ if len(bcdbuf) == 0 {
+ t.Errorf("TestTbcdUnEven1: bcd Encode failed")
+ }
+
+ if bcdbuf[0] != 0x21 {
+ t.Errorf("TestBcdEven: bcdbuf[0] expected 0x21 got 0x%x", bcdbuf[0])
+ }
+
+ if bcdbuf[1] != 0x43 {
+ t.Errorf("TestBcdEven: bcdbuf[1] expected 0x43 got 0x%x", bcdbuf[1])
+ }
+
+ if bcdbuf[2] != 0xf5 {
+ t.Errorf("TestBcdEven: bcdbuf[2] expected 0xf5 got 0x%x", bcdbuf[2])
+ }
+
+ hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+ hex.Encode(hexdata, bcdbuf)
+ fmt.Printf("TestTbcdUnEven1: 12345 encoded data [%s]\n", string(hexdata))
+
+ bcdstr := bcd.Decode(bcdbuf)
+ if bcdstr != string("12345?") {
+ t.Errorf("TestTbcdUnEven1: bcd Decode failed: got %s expect %s", bcdstr, string("12345?"))
+ }
+}
+
+func TestTbcdUnEven2(t *testing.T) {
+
+ bcd := NewTbcd("0123456789?????f")
+ bcdbuf := bcd.Encode("12345f")
+ if len(bcdbuf) == 0 {
+ t.Errorf("TestTbcdUnEven2: bcd Encode failed")
+ }
+
+ if bcdbuf[0] != 0x21 {
+ t.Errorf("TestBcdEven: bcdbuf[0] expected 0x21 got 0x%x", bcdbuf[0])
+ }
+
+ if bcdbuf[1] != 0x43 {
+ t.Errorf("TestBcdEven: bcdbuf[1] expected 0x43 got 0x%x", bcdbuf[1])
+ }
+
+ if bcdbuf[2] != 0xf5 {
+ t.Errorf("TestBcdEven: bcdbuf[2] expected 0xf5 got 0x%x", bcdbuf[2])
+ }
+
+ hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+ hex.Encode(hexdata, bcdbuf)
+ fmt.Printf("TestTbcdUnEven2: 12345f encoded data [%s]\n", string(hexdata))
+
+ bcdstr := bcd.Decode(bcdbuf)
+ if bcdstr != string("12345f") {
+ t.Errorf("TestTbcdUnEven2: bcd Decode failed: got %s expect %s", bcdstr, string("12345f"))
+ }
+}