37 lines
1.8 KiB
Go
37 lines
1.8 KiB
Go
package main
|
|
|
|
import "testing"
|
|
|
|
// 1226/AC1: given a module whose process declares bus and has no issued account, when a machine is composed, the
|
|
// push's warning names issue, and the machine's other modules are composed (AC4: nothing is refused).
|
|
func TestAProcessAccountNobodyIssuedIsWarnedOfNamingIssue(t *testing.T) {
|
|
m := mailSenderWithProcess()
|
|
got := processAccountWarning(m, "laptop", "broker-send", nil)
|
|
want := "laptop/mesh-mail process send: its bus account is not issued — mesh-controller.issue laptop mesh-mail"
|
|
if got != want {
|
|
t.Fatalf("1226/AC1: the warning is %q, want %q", got, want)
|
|
}
|
|
// Other names are not this rule's.
|
|
if processAccountWarning(m, "laptop", "broker", nil) != "" || processAccountWarning(m, "laptop", "broker-other", nil) != "" ||
|
|
processAccountWarning(m, "laptop", "token", nil) != "" {
|
|
t.Fatal("1226/AC1: a name that is no declared process's account was warned of")
|
|
}
|
|
if got := processAccountWarning(m, "laptop", "broker-send", []string{"laptop.mesh-mail.send"}); got != "" {
|
|
t.Fatalf("1226/AC3: an issued account was warned of: %q", got)
|
|
}
|
|
}
|
|
|
|
// 1226/AC3: an account already issued is not issued again by a later delivery or assignment.
|
|
func TestAnIssuedProcessAccountIsNotIssuedAgain(t *testing.T) {
|
|
m := mailSenderWithProcess()
|
|
if got := processAccountsMissing(m, "laptop", nil); len(got) != 1 || got[0].Process != "send" {
|
|
t.Fatalf("1226/AC3: an account not issued is not missing: %v", got)
|
|
}
|
|
if got := processAccountsMissing(m, "laptop", []string{"laptop.mesh-mail.send"}); len(got) != 0 {
|
|
t.Fatalf("1226/AC3: an issued account would be issued again: %v", got)
|
|
}
|
|
if got := processAccountsMissing(m, "ace", []string{"laptop.mesh-mail.send"}); len(got) != 1 {
|
|
t.Fatalf("1226/AC3: another machine's account stands in for this one's: %v", got)
|
|
}
|
|
}
|