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 }