~kyrofa/unity-scope-snappy/integration-tests_previews

« back to all changes in this revision

Viewing changes to progress-daemon/daemon/daemon_test.go

  • Committer: Tarmac
  • Author(s): Kyle Fazzari
  • Date: 2015-06-23 14:51:07 UTC
  • mfrom: (8.9.8 unity-scope-snappy)
  • Revision ID: tarmac-20150623145107-wgtbkigf2q9svn6c
Finish the progress daemon.

Approved by Xavi Garcia, PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package daemon
 
2
 
 
3
import (
 
4
        "testing"
 
5
)
 
6
 
 
7
// Test typical New usage.
 
8
func TestNew(t *testing.T) {
 
9
        daemon, err := New("")
 
10
        if err != nil {
 
11
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
12
        }
 
13
 
 
14
        if daemon.server == nil {
 
15
                t.Error("Daemon dbus server was unexpectedly nil")
 
16
        }
 
17
 
 
18
        if daemon.packageManager == nil {
 
19
                t.Errorf("Daemon package manager was unexpectedly nil")
 
20
        }
 
21
}
 
22
 
 
23
// Test that New fails if given an invalid API URL
 
24
func TestNew_invalidUrl(t *testing.T) {
 
25
        _, err := New(":")
 
26
        if err == nil {
 
27
                t.Error("Expected an error due to invalid API URL")
 
28
        }
 
29
}
 
30
 
 
31
// Test typical Run usage.
 
32
func TestDaemonRunStop(t *testing.T) {
 
33
        daemon, err := New("")
 
34
        if err != nil {
 
35
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
36
        }
 
37
 
 
38
        err = daemon.Run()
 
39
        if err != nil {
 
40
                t.Error("Unexpected error while running daemon")
 
41
        }
 
42
 
 
43
        // Obtain our own unique name
 
44
        names := daemon.server.Names()
 
45
        if len(names) < 1 {
 
46
                t.Errorf("Got %d names, expected at least 1", len(names))
 
47
        }
 
48
 
 
49
        // Make sure we're running by making sure we own the name we expect
 
50
        name, err := daemon.server.GetNameOwner(busName)
 
51
        if err != nil {
 
52
                t.Error("Unexpected error while requesting name owner")
 
53
        }
 
54
 
 
55
        // Make sure we own that name
 
56
        if name != names[0] {
 
57
                t.Errorf(`Name owner was "%s", expected the owner to be us ("%s")`, name, names[0])
 
58
        }
 
59
}
 
60
 
 
61
// Test dbus connection failure
 
62
func TestRun_connectionFailure(t *testing.T) {
 
63
        daemon, err := New("")
 
64
        if err != nil {
 
65
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
66
        }
 
67
 
 
68
        // Use fake server instead of real one
 
69
        daemon.server = &FakeDbusServer{failConnect: true}
 
70
 
 
71
        err = daemon.Run()
 
72
        if err == nil {
 
73
                t.Error("Expected an error due to failure to connect")
 
74
        }
 
75
}
 
76
 
 
77
// Test dbus name request failure
 
78
func TestRun_nameRequestFailure(t *testing.T) {
 
79
        daemon, err := New("")
 
80
        if err != nil {
 
81
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
82
        }
 
83
 
 
84
        // Use fake server instead of real one
 
85
        daemon.server = &FakeDbusServer{failRequestName: true}
 
86
 
 
87
        err = daemon.Run()
 
88
        if err == nil {
 
89
                t.Error("Expected an error due to failure to request name")
 
90
        }
 
91
}
 
92
 
 
93
// Test dbus name already taken
 
94
func TestRun_nameTaken(t *testing.T) {
 
95
        daemon, err := New("")
 
96
        if err != nil {
 
97
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
98
        }
 
99
 
 
100
        // Use fake server instead of real one
 
101
        daemon.server = &FakeDbusServer{nameAlreadyTaken: true}
 
102
 
 
103
        err = daemon.Run()
 
104
        if err == nil {
 
105
                t.Error("Expected an error due to name already being taken")
 
106
        }
 
107
}
 
108
 
 
109
// Test dbus introspection export failure
 
110
func TestRun_introspectionExportFailure(t *testing.T) {
 
111
        daemon, err := New("")
 
112
        if err != nil {
 
113
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
114
        }
 
115
 
 
116
        // Use fake server instead of real one
 
117
        daemon.server = &FakeDbusServer{
 
118
                failExport:                  true,
 
119
                failSpecificExportInterface: "org.freedesktop.DBus.Introspectable",
 
120
        }
 
121
 
 
122
        err = daemon.Run()
 
123
        if err == nil {
 
124
                t.Error("Expected an error due to failure to export")
 
125
        }
 
126
}
 
127
 
 
128
// Test dbus package manager export failure
 
129
func TestRun_packageManagerExportFailure(t *testing.T) {
 
130
        daemon, err := New("")
 
131
        if err != nil {
 
132
                t.Fatalf("Unexpected error when creating daemon: %s", err)
 
133
        }
 
134
 
 
135
        // Use fake server instead of real one
 
136
        daemon.server = &FakeDbusServer{
 
137
                failExport:                  true,
 
138
                failSpecificExportInterface: interfaceName,
 
139
        }
 
140
 
 
141
        err = daemon.Run()
 
142
        if err == nil {
 
143
                t.Error("Expected an error due to failure to export")
 
144
        }
 
145
}