66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package command
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| func TestCommand(t *testing.T) {
 | |
| 	c := &cmd{
 | |
| 		name:        "test",
 | |
| 		usage:       "test usage",
 | |
| 		description: "test description",
 | |
| 		exec: func(args ...string) ([]byte, error) {
 | |
| 			return []byte("test"), nil
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	if c.String() != c.name {
 | |
| 		t.Fatalf("expected name %s got %s", c.name, c.String())
 | |
| 	}
 | |
| 
 | |
| 	if c.Usage() != c.usage {
 | |
| 		t.Fatalf("expected usage %s got %s", c.usage, c.Usage())
 | |
| 	}
 | |
| 
 | |
| 	if c.Description() != c.description {
 | |
| 		t.Fatalf("expected description %s got %s", c.description, c.Description())
 | |
| 	}
 | |
| 
 | |
| 	if r, err := c.Exec(); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	} else if string(r) != "test" {
 | |
| 		t.Fatalf("expected exec result test got %s", string(r))
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestNewCommand(t *testing.T) {
 | |
| 	c := &cmd{
 | |
| 		name:        "test",
 | |
| 		usage:       "test usage",
 | |
| 		description: "test description",
 | |
| 		exec: func(args ...string) ([]byte, error) {
 | |
| 			return []byte("test"), nil
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	nc := NewCommand(c.name, c.usage, c.description, c.exec)
 | |
| 
 | |
| 	if nc.String() != c.name {
 | |
| 		t.Fatalf("expected name %s got %s", c.name, nc.String())
 | |
| 	}
 | |
| 
 | |
| 	if nc.Usage() != c.usage {
 | |
| 		t.Fatalf("expected usage %s got %s", c.usage, nc.Usage())
 | |
| 	}
 | |
| 
 | |
| 	if nc.Description() != c.description {
 | |
| 		t.Fatalf("expected description %s got %s", c.description, nc.Description())
 | |
| 	}
 | |
| 
 | |
| 	if r, err := nc.Exec(); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	} else if string(r) != "test" {
 | |
| 		t.Fatalf("expected exec result test got %s", string(r))
 | |
| 	}
 | |
| }
 |