mirror of
https://github.com/slackhq/nebula.git
synced 2025-11-22 00:15:37 +01:00
Public Release
This commit is contained in:
81
cmd/nebula-cert/main_test.go
Normal file
81
cmd/nebula-cert/main_test.go
Normal file
@@ -0,0 +1,81 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"io"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
//TODO: all flag parsing continueOnError will print to stderr on its own currently
|
||||
|
||||
func Test_help(t *testing.T) {
|
||||
expected := "Usage of " + os.Args[0] + " <global flags> <mode>:\n" +
|
||||
" Global flags:\n" +
|
||||
" -version: Prints the version\n" +
|
||||
" -h, -help: Prints this help message\n\n" +
|
||||
" Modes:\n" +
|
||||
" " + caSummary() + "\n" +
|
||||
" " + keygenSummary() + "\n" +
|
||||
" " + signSummary() + "\n" +
|
||||
" " + printSummary() + "\n" +
|
||||
" " + verifySummary() + "\n"
|
||||
|
||||
ob := &bytes.Buffer{}
|
||||
|
||||
// No error test
|
||||
help("", ob)
|
||||
assert.Equal(
|
||||
t,
|
||||
expected,
|
||||
ob.String(),
|
||||
)
|
||||
|
||||
// Error test
|
||||
ob.Reset()
|
||||
help("test error", ob)
|
||||
assert.Equal(
|
||||
t,
|
||||
"Error: test error\n\n"+expected,
|
||||
ob.String(),
|
||||
)
|
||||
}
|
||||
|
||||
func Test_handleError(t *testing.T) {
|
||||
ob := &bytes.Buffer{}
|
||||
|
||||
// normal error
|
||||
handleError("", errors.New("test error"), ob)
|
||||
assert.Equal(t, "Error: test error\n", ob.String())
|
||||
|
||||
// unknown mode help error
|
||||
ob.Reset()
|
||||
handleError("", newHelpErrorf("test %s", "error"), ob)
|
||||
assert.Equal(t, "Error: test error\n", ob.String())
|
||||
|
||||
// test all modes with help error
|
||||
modes := map[string]func(io.Writer){"ca": caHelp, "print": printHelp, "sign": signHelp, "verify": verifyHelp}
|
||||
eb := &bytes.Buffer{}
|
||||
for mode, fn := range modes {
|
||||
ob.Reset()
|
||||
eb.Reset()
|
||||
fn(eb)
|
||||
|
||||
handleError(mode, newHelpErrorf("test %s", "error"), ob)
|
||||
assert.Equal(t, "Error: test error\n"+eb.String(), ob.String())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func assertHelpError(t *testing.T, err error, msg string) {
|
||||
switch err.(type) {
|
||||
case *helpError:
|
||||
// good
|
||||
default:
|
||||
t.Fatal("err was not a helpError")
|
||||
}
|
||||
|
||||
assert.EqualError(t, err, msg)
|
||||
}
|
||||
Reference in New Issue
Block a user