1package entity
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/require"
7)
8
9func TestInterleaved(t *testing.T) {
10 primary := Id("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX______________")
11 secondary := Id("YZ0123456789+/________________________________________________")
12 expectedId := Id("aYbZc0def1ghij2klmn3opqr4stuv5wxyz6ABCD7EFGH8IJKL9MNOP+QRST/UVWX")
13
14 interleaved := CombineIds(primary, secondary)
15 require.Equal(t, expectedId, interleaved)
16
17 // full length
18 splitPrimary, splitSecondary := SeparateIds(interleaved.String())
19 require.Equal(t, string(primary[:50]), splitPrimary)
20 require.Equal(t, string(secondary[:14]), splitSecondary)
21
22 // partial
23 splitPrimary, splitSecondary = SeparateIds(string(expectedId[:7]))
24 require.Equal(t, string(primary[:4]), splitPrimary)
25 require.Equal(t, string(secondary[:3]), splitSecondary)
26
27 // partial
28 splitPrimary, splitSecondary = SeparateIds(string(expectedId[:10]))
29 require.Equal(t, string(primary[:6]), splitPrimary)
30 require.Equal(t, string(secondary[:4]), splitSecondary)
31
32 // partial
33 splitPrimary, splitSecondary = SeparateIds(string(expectedId[:16]))
34 require.Equal(t, string(primary[:11]), splitPrimary)
35 require.Equal(t, string(secondary[:5]), splitSecondary)
36}