/usr/share/gocode/src/github.com/ctdk/goiardi/node/node_test.go is in golang-github-ctdk-goiardi-dev 0.11.7-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | /*
* Copyright (c) 2013-2017, Jeremy Bingham (<jeremy@goiardi.gl>)
*
* 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.
*/
// Node tests
package node
import (
"encoding/gob"
"github.com/ctdk/goiardi/config"
"github.com/ctdk/goiardi/datastore"
"github.com/ctdk/goiardi/indexer"
"testing"
"time"
)
func TestActionAtADistance(t *testing.T) {
indexer.Initialize(config.Config)
n, _ := New("foo2")
gob.Register(n)
n.Normal["foo"] = "bar"
n.Save()
n2, _ := Get("foo2")
if n.Name != n2.Name {
t.Errorf("Node names should have been the same, but weren't, got %s and %s", n.Name, n2.Name)
}
if n.Normal["foo"] != n2.Normal["foo"] {
t.Errorf("Normal attribute 'foo' should have been equal between the two copies of the node, but weren't.")
}
n2.Normal["foo"] = "blerp"
if n.Normal["foo"] == n2.Normal["foo"] {
t.Errorf("Normal attribute 'foo' should not have been equal between the two copies of the node, but were.")
}
n2.Save()
n3, _ := Get("foo2")
if n3.Normal["foo"] != n2.Normal["foo"] {
t.Errorf("Normal attribute 'foo' should have been equal between the two copies of the node after saving a second time, but weren't.")
}
}
func TestNodeStatus(t *testing.T) {
n, _ := New("foo3")
n.Save()
z := new(NodeStatus)
gob.Register(z)
n.UpdateStatus("up")
ns, err := n.LatestStatus()
if err != nil {
t.Errorf(err.Error())
}
if ns == nil {
t.Errorf("node status was nil!")
} else if ns.Status != "up" {
t.Errorf("node status should have been 'up', got %s", ns.Status)
}
n.UpdateStatus("up")
n.UpdateStatus("down")
nses, err := n.AllStatuses()
if len(nses) != 3 {
t.Errorf("AllStatuses should have returned 3, but it returned %d", len(nses))
}
err = n.deleteStatuses()
if err != nil {
t.Errorf(err.Error())
}
nses, _ = n.AllStatuses()
if len(nses) != 0 {
t.Errorf("AllStatuses should have returned 0 after calling DeleteStatuses, but instead it returned %d", len(nses))
}
}
func TestNodeStatusDelete(t *testing.T) {
// clear out any existing node statuses
nodes := AllNodes()
ds := datastore.New()
for _, n := range nodes {
ds.DeleteNodeStatus(n.Name)
}
dNode, _ := New("deleting_node")
dNode.Save()
now := time.Now()
day := 24 * time.Hour
nStats := 28
for i := nStats; i > 0; i-- {
t := now.Add(-((time.Duration(i) * day) + (5 * time.Minute)))
var status string
switch i % 2 {
case 0:
status = "up"
default:
status = "down"
}
ns := &NodeStatus{Node: dNode, Status: status, UpdatedAt: t}
ds.SetNodeStatus(dNode.Name, ns)
}
from := 14 * day
expected := 15
del, err := DeleteNodeStatusesByAge(from)
if err != nil {
t.Error(err)
}
if del != expected {
t.Errorf("Expected %d deleted statuses, but got %d", expected, del)
}
an := AllNodeStatuses()
if len(an) != nStats-expected {
t.Errorf("expected to have %d statuses left, but there were %d", nStats-del, len(an))
}
}
|