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  }