-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_test.go
67 lines (56 loc) · 1.64 KB
/
main_test.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
package main
import (
"log"
"testing"
"github.com/360EntSecGroup-Skylar/excelize"
)
func TestJsonUnmarshal(t *testing.T) {
_, err := LoadJSON("testdata/roles.json")
if err != nil {
t.Fatal(err)
}
}
func mkXslx(t *testing.T, filename string) {
xslx := excelize.NewFile()
// Sheet1 for project roles, auto-generated
// Header
xslx.SetCellValue("Sheet1", "A1", "Project roles")
xslx.SetCellValue("Sheet1", "B1", "Jenkins permissions")
xslx.SetCellValue("Sheet1", "C1", "Pattern")
// Add build role
xslx.SetCellValue("Sheet1", "A2", "build")
xslx.SetCellValue("Sheet1", "B2",
"hudson.model.Item.Discover\t"+
"hudson.model.Item.Build\t"+
"hudson.model.Item.Workspace")
xslx.SetCellValue("Sheet1", "C2", "build-.*")
// Add deployment role
xslx.SetCellValue("Sheet1", "A3", "deployment")
xslx.SetCellValue("Sheet1", "B3", "hudson.model.Item.Discover")
xslx.SetCellValue("Sheet1", "C3", "deploy-.*")
// Assigned users
xslx.NewSheet("Sheet2")
xslx.SetCellValue("Sheet2", "A2", "build")
xslx.SetCellValue("Sheet2", "B2", "testuser1")
xslx.SetCellValue("Sheet2", "C2", "testuser2")
xslx.SetCellValue("Sheet2", "D2", "testuser3")
xslx.SetCellValue("Sheet2", "A3", "deployment")
xslx.SetCellValue("Sheet2", "B3", "deployuser1")
xslx.SetCellValue("Sheet2", "C3", "deployuser2")
err := xslx.SaveAs(filename)
die(err)
log.Printf("wrote %s\n", filename)
}
func TestGenXslx(t *testing.T) {
mkXslx(t, "testdata/gen1.xslx")
}
func TestXslxImport(t *testing.T) {
mkXslx(t, "testdata/gen2.xslx")
roles, err := LoadXslx("testdata/gen2.xslx")
if err != nil {
t.Fatal(err)
}
if len(roles) != 2 {
t.Fatalf("want 2 but got %d\n", len(roles))
}
}