blob: 3a095692ca1056dde8f9ae2d9c8f8bed3e9a527a [file] [log] [blame]
giolekvad12813b2021-05-01 19:58:44 +04001package vpn
2
3import (
4 "log"
5 "testing"
6
7 "github.com/giolekva/pcloud/core/vpn/types"
8 "inet.af/netaddr"
9)
10
11func TestNewGet(t *testing.T) {
12 m := NewSequentialIPManager(netaddr.MustParseIP("10.0.0.1"))
13 a := types.NewPrivateKey()
14 b := types.NewPrivateKey()
15 ipA, err := m.New(a.Public())
16 if err != nil {
17 log.Fatal(err)
18 }
19 if ipA.String() != "10.0.0.1" {
20 t.Fatalf("Expected 10.0.0.1 Got: %s", ipA.String())
21 }
22 ipA, err = m.Get(a.Public())
23 if err != nil {
24 log.Fatal(err)
25 }
26 if ipA.String() != "10.0.0.1" {
27 t.Fatalf("Expected 10.0.0.1 Got: %s", ipA.String())
28 }
29 ipB, err := m.New(b.Public())
30 if err != nil {
31 log.Fatal(err)
32 }
33 if ipB.String() != "10.0.0.2" {
34 t.Fatalf("Expected 10.0.0.2 Got: %s", ipB.String())
35 }
36 ipB, err = m.Get(b.Public())
37 if err != nil {
38 log.Fatal(err)
39 }
40 if ipB.String() != "10.0.0.2" {
41 t.Fatalf("Expected 10.0.0.2 Got: %s", ipB.String())
42 }
43
44}
45
46func TestGetNonExistentPublicKey(t *testing.T) {
47 m := NewSequentialIPManager(netaddr.MustParseIP("10.0.0.1"))
48 a := types.NewPrivateKey()
49 if _, err := m.Get(a.Public()); err == nil {
50 t.Fatal("Returned IP for non existent public key")
51 }
52}