-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-util.go
100 lines (89 loc) · 2.58 KB
/
test-util.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
Copyright IBM Corp. 2016 All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package lib
import (
"fmt"
"os"
"path"
"strconv"
"testing"
)
const (
rootPort = 7075
rootDir = "rootDir"
intermediatePort = 7076
intermediateDir = "intDir"
testdataDir = "../testdata"
)
func getRootServerURL() string {
return fmt.Sprintf("http://admin:adminpw@localhost:%d", rootPort)
}
// TestGetRootServer creates a server with root configuration
func TestGetRootServer(t *testing.T) *Server {
return TestGetServer(rootPort, rootDir, "", -1, t)
}
// TestGetIntermediateServer creates a server with intermediate server configuration
func TestGetIntermediateServer(idx int, t *testing.T) *Server {
return TestGetServer(
intermediatePort,
path.Join(intermediateDir, strconv.Itoa(idx)),
getRootServerURL(),
-1,
t)
}
// TestGetServer creates and returns a pointer to a server struct
func TestGetServer(port int, home, parentURL string, maxEnroll int, t *testing.T) *Server {
return TestGetServer2(home != testdataDir, port, home, parentURL, maxEnroll, t)
}
// TestGetServer2 creates and returns a pointer to a server struct
func TestGetServer2(deleteHome bool, port int, home, parentURL string, maxEnroll int, t *testing.T) *Server {
if deleteHome {
os.RemoveAll(home)
}
affiliations := map[string]interface{}{
"hyperledger": map[string]interface{}{
"fabric": []string{"ledger", "orderer", "security"},
"fabric-ca": nil,
"sdk": nil,
},
"org2": nil,
}
srv := &Server{
Config: &ServerConfig{
Port: port,
Debug: true,
},
CA: CA{
Config: &CAConfig{
Intermediate: IntermediateCA{
ParentServer: ParentServer{
URL: parentURL,
},
},
Affiliations: affiliations,
Registry: CAConfigRegistry{
MaxEnrollments: maxEnroll,
},
},
},
HomeDir: home,
}
// The bootstrap user's affiliation is the empty string, which
// means the user is at the affiliation root
err := srv.RegisterBootstrapUser("admin", "adminpw", "")
if err != nil {
t.Errorf("Failed to register bootstrap user: %s", err)
return nil
}
return srv
}