github.com/getgauge/gauge@v1.6.9/execution/result/specResult_test.go (about)

     1  /*----------------------------------------------------------------
     2   *  Copyright (c) ThoughtWorks, Inc.
     3   *  Licensed under the Apache License, Version 2.0
     4   *  See LICENSE in the project root for license information.
     5   *----------------------------------------------------------------*/
     6  
     7  package result
     8  
     9  import (
    10  	"github.com/getgauge/gauge-proto/go/gauge_messages"
    11  	gc "gopkg.in/check.v1"
    12  )
    13  
    14  func (s *MySuite) TestAddScenarioResults(c *gc.C) {
    15  	specItems := []*gauge_messages.ProtoItem{}
    16  	protoSpec := &gauge_messages.ProtoSpec{
    17  		Items: specItems,
    18  	}
    19  	specResult := SpecResult{
    20  		ProtoSpec: protoSpec,
    21  	}
    22  	heading := "Scenario heading"
    23  	item1 := &gauge_messages.ProtoItem{ItemType: gauge_messages.ProtoItem_Step, Step: &gauge_messages.ProtoStep{StepExecutionResult: &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{}}}}
    24  	item2 := &gauge_messages.ProtoItem{ItemType: gauge_messages.ProtoItem_Step, Step: &gauge_messages.ProtoStep{StepExecutionResult: &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{}}}}
    25  	step3Res := &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{RecoverableError: true, Failed: false}}
    26  	item3 := &gauge_messages.ProtoItem{ItemType: gauge_messages.ProtoItem_Step, Step: &gauge_messages.ProtoStep{StepExecutionResult: step3Res}}
    27  	items := []*gauge_messages.ProtoItem{item1, item2, item3}
    28  	scenarioResult := NewScenarioResult(&gauge_messages.ProtoScenario{ScenarioHeading: heading, ScenarioItems: items})
    29  	results := make([]Result, 0)
    30  	results = append(results, scenarioResult)
    31  
    32  	specResult.AddScenarioResults(results)
    33  
    34  	c.Assert(specResult.GetFailed(), gc.Equals, false)
    35  	c.Assert(specResult.ScenarioCount, gc.Equals, 1)
    36  	c.Assert(specResult.ProtoSpec.IsTableDriven, gc.Equals, false)
    37  	c.Assert(specResult.ScenarioFailedCount, gc.Equals, 0)
    38  
    39  }
    40  
    41  func (s *MySuite) TestAddTableRelatedScenarioResult(c *gc.C) {
    42  	specItems := []*gauge_messages.ProtoItem{}
    43  	protoSpec := &gauge_messages.ProtoSpec{
    44  		Items: specItems,
    45  	}
    46  	specResult := SpecResult{
    47  		ProtoSpec: protoSpec,
    48  	}
    49  	heading1 := "Scenario heading 1"
    50  	heading2 := "Scenario heading 2"
    51  	item1 := &gauge_messages.ProtoItem{ItemType: gauge_messages.ProtoItem_Step, Step: &gauge_messages.ProtoStep{StepExecutionResult: &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{}}}}
    52  	item2 := &gauge_messages.ProtoItem{ItemType: gauge_messages.ProtoItem_Step, Step: &gauge_messages.ProtoStep{StepExecutionResult: &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{}}}}
    53  	step3Res := &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{RecoverableError: true, Failed: false}}
    54  	item3 := &gauge_messages.ProtoItem{ItemType: gauge_messages.ProtoItem_Step, Step: &gauge_messages.ProtoStep{StepExecutionResult: step3Res}}
    55  	items := []*gauge_messages.ProtoItem{item1, item2, item3}
    56  	scenarioResult1 := NewScenarioResult(&gauge_messages.ProtoScenario{ScenarioHeading: heading1, ScenarioItems: items})
    57  	scenarioResult2 := NewScenarioResult(&gauge_messages.ProtoScenario{ScenarioHeading: heading2, ScenarioItems: items})
    58  	scenarioResultsForIndex0 := []Result{scenarioResult1, scenarioResult2}
    59  	scenarioResultsForIndex1 := []Result{scenarioResult1, scenarioResult2}
    60  	results := make([][]Result, 0)
    61  	results = append(results, scenarioResultsForIndex0)
    62  	results = append(results, scenarioResultsForIndex1)
    63  
    64  	specResult.AddTableRelatedScenarioResult(results, 1)
    65  
    66  	c.Assert(specResult.GetFailed(), gc.Equals, false)
    67  	c.Assert(specResult.ScenarioCount, gc.Equals, 2)
    68  	c.Assert(specResult.ProtoSpec.IsTableDriven, gc.Equals, true)
    69  	c.Assert(specResult.ScenarioFailedCount, gc.Equals, 0)
    70  	c.Assert(specResult.ExecutionTime, gc.Equals, int64(0))
    71  }