github.com/unirita/cuto@v0.9.8-0.20160830082821-aa6652f877b7/flowgen/converter/element_test.go (about) 1 package converter 2 3 import "testing" 4 5 func initIndexes() { 6 jIndex = 1 7 gIndex = 1 8 } 9 10 func TestNewJob(t *testing.T) { 11 initIndexes() 12 j := NewJob("test") 13 if j.ID() != "job1" { 14 t.Errorf("Job ID[%s] is wrong.", j.ID()) 15 } 16 if j.Name() != "test" { 17 t.Errorf("Job name[%s] is wrong.", j.Name()) 18 } 19 } 20 21 func TestJobNext_Job(t *testing.T) { 22 initIndexes() 23 j := NewJob("test1") 24 25 j.SetNext(NewJob("test2")) 26 if j.Next() == nil { 27 t.Fatal("Failed to set next job.") 28 } 29 if j.Next().ID() != "job2" { 30 t.Errorf("Next job's ID[%s] is wrong. Expected [%s]", j.Next().ID(), "job2") 31 } 32 if _, ok := j.Next().(*Job); !ok { 33 t.Fatal("Next element is not job.") 34 } 35 } 36 37 func TestJobNext_Gateway(t *testing.T) { 38 initIndexes() 39 j := NewJob("test") 40 p := NewGateway() 41 42 j.SetNext(p) 43 if j.Next() == nil { 44 t.Fatal("Failed to set next job.") 45 } 46 if j.Next().ID() != "gw1" { 47 t.Errorf("Next gateway's ID[%s] is wrong. Expected [%s]", j.Next().ID(), "gw1") 48 } 49 if _, ok := j.Next().(*Gateway); !ok { 50 t.Fatal("Next element is not gateway.") 51 } 52 } 53 54 func TestNewGateway(t *testing.T) { 55 initIndexes() 56 p := NewGateway() 57 if p.ID() != "gw1" { 58 t.Errorf("Gateway ID[%s] is wrong.", p.ID()) 59 } 60 if p.PathHeads == nil { 61 t.Fatal("PathHeads is not set.") 62 } 63 if len(p.PathHeads) != 0 { 64 t.Errorf("PathHeads size[%d] must be %d.", len(p.PathHeads), 0) 65 } 66 } 67 68 func TestGatewayNext_Job(t *testing.T) { 69 initIndexes() 70 p := NewGateway() 71 72 p.SetNext(NewJob("test")) 73 if p.Next() == nil { 74 t.Fatal("Failed to set next job.") 75 } 76 if p.Next().ID() != "job1" { 77 t.Errorf("Next job's ID[%s] is wrong. Expected [%s]", p.Next().ID(), "job1") 78 } 79 if _, ok := p.Next().(*Job); !ok { 80 t.Fatal("Next element is not job.") 81 } 82 } 83 84 func TestGatewayNext_Gateway(t *testing.T) { 85 initIndexes() 86 p := NewGateway() 87 88 p.SetNext(NewGateway()) 89 if p.Next() == nil { 90 t.Fatal("Failed to set next job.") 91 } 92 if p.Next().ID() != "gw2" { 93 t.Errorf("Next gateway's ID[%s] is wrong. Expected [%s]", p.Next().ID(), "gw2") 94 } 95 if _, ok := p.Next().(*Gateway); !ok { 96 t.Fatal("Next element is not parallel.") 97 } 98 } 99 100 func TestAddPathHead(t *testing.T) { 101 initIndexes() 102 p := NewGateway() 103 p.AddPathHead(NewJob("test1")) 104 p.AddPathHead(NewJob("test2")) 105 106 if len(p.PathHeads) != 2 { 107 t.Fatalf("PathHeads size[%d] must be %d.", len(p.PathHeads), 2) 108 } 109 if p.PathHeads[0].ID() != "job1" { 110 t.Errorf("PathHeads[0] name[%s] is wrong. Expected [%s]", p.PathHeads[0], "test1") 111 } 112 if p.PathHeads[1].ID() != "job2" { 113 t.Errorf("PathHeads[1] name[%s] is wrong. Expected [%s]", p.PathHeads[1], "test2") 114 } 115 }