github.com/tiagovtristao/plz@v13.4.0+incompatible/src/core/test_results_test.go (about)

     1  package core
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  var a = []LineCoverage{NotExecutable, Uncovered, Uncovered, Covered, NotExecutable, Unreachable}
    11  var b = []LineCoverage{Uncovered, Covered, Uncovered, Uncovered, Unreachable, Covered}
    12  var c = []LineCoverage{Covered, NotExecutable, Covered, Uncovered, Covered, NotExecutable}
    13  var empty = []LineCoverage{}
    14  
    15  func TestMergeCoverageLines1(t *testing.T) {
    16  	coverage := MergeCoverageLines(a, b)
    17  	expected := []LineCoverage{Uncovered, Covered, Uncovered, Covered, Unreachable, Covered}
    18  	assert.Equal(t, expected, coverage)
    19  }
    20  
    21  func TestMergeCoverageLines2(t *testing.T) {
    22  	coverage := MergeCoverageLines(a, c)
    23  	expected := []LineCoverage{Covered, Uncovered, Covered, Covered, Covered, Unreachable}
    24  	assert.Equal(t, expected, coverage)
    25  }
    26  
    27  func TestMergeCoverageLines3(t *testing.T) {
    28  	coverage := MergeCoverageLines(b, c)
    29  	expected := []LineCoverage{Covered, Covered, Covered, Uncovered, Covered, Covered}
    30  	assert.Equal(t, expected, coverage)
    31  }
    32  
    33  func TestMergeCoverageLines4(t *testing.T) {
    34  	coverage := MergeCoverageLines(MergeCoverageLines(a, b), c)
    35  	expected := []LineCoverage{Covered, Covered, Covered, Covered, Covered, Covered}
    36  	assert.Equal(t, expected, coverage)
    37  }
    38  
    39  func TestMergeCoverageLines5(t *testing.T) {
    40  	coverage := MergeCoverageLines(MergeCoverageLines(c, a), b)
    41  	expected := []LineCoverage{Covered, Covered, Covered, Covered, Covered, Covered}
    42  	assert.Equal(t, expected, coverage)
    43  }
    44  
    45  func TestMergeCoverageLines6(t *testing.T) {
    46  	coverage := MergeCoverageLines(empty, b)
    47  	assert.Equal(t, b, coverage)
    48  }
    49  
    50  func TestMergeCoverageLines7(t *testing.T) {
    51  	coverage := MergeCoverageLines(a, empty)
    52  	assert.Equal(t, a, coverage)
    53  }
    54  
    55  func TestMergeCoverageLines8(t *testing.T) {
    56  	coverage := MergeCoverageLines(empty, empty)
    57  	assert.Equal(t, empty, coverage)
    58  }
    59  
    60  func TestAdd(t *testing.T) {
    61  	duration10 := time.Duration(10)
    62  	duration20 := time.Duration(20)
    63  	suite1 := TestSuite{
    64  		Name: "Test",
    65  		TestCases: []TestCase{
    66  			{
    67  				ClassName: "SomeClass",
    68  				Name:      "someTest",
    69  				Executions: []TestExecution{
    70  					{
    71  						Duration: &duration10,
    72  					},
    73  				},
    74  			},
    75  		},
    76  	}
    77  	suite2 := TestSuite{
    78  		Name: "Test",
    79  		TestCases: []TestCase{
    80  			{
    81  				ClassName: "SomeClass",
    82  				Name:      "someTest",
    83  				Executions: []TestExecution{
    84  					{
    85  						Duration: &duration20,
    86  					},
    87  				},
    88  			},
    89  			{
    90  				ClassName: "SomeClass",
    91  				Name:      "someTest2",
    92  				Executions: []TestExecution{
    93  					{
    94  						Duration: &duration20,
    95  					},
    96  				},
    97  			},
    98  		},
    99  	}
   100  	suite1.Add(suite2.TestCases...)
   101  
   102  	assert.Equal(t, 2, suite1.Tests())
   103  	assert.Equal(t, 2, suite1.Passes())
   104  	assert.Equal(t, 0, suite1.Failures())
   105  	assert.Equal(t, 0, suite1.Skips())
   106  	assert.Equal(t, 0, suite1.Errors())
   107  
   108  	testCase := suite1.TestCases[0]
   109  
   110  	assert.Equal(t, 2, len(testCase.Executions))
   111  	assert.NotNil(t, testCase.Success())
   112  
   113  	success := testCase.Success()
   114  
   115  	assert.Equal(t, &duration10, success.Duration)
   116  
   117  	testCase = suite1.TestCases[1]
   118  
   119  	assert.Equal(t, 1, len(testCase.Executions))
   120  	assert.NotNil(t, testCase.Success())
   121  
   122  	success = testCase.Success()
   123  
   124  	assert.Equal(t, &duration20, success.Duration)
   125  }
   126  
   127  func TestOrderedFiles(t *testing.T) {
   128  	cov := NewTestCoverage()
   129  	cov.Files["common/python/async_unblock.py"] = nil
   130  	cov.Files["common/python/aws/ses.py"] = nil
   131  	cov.Files["common/python/aws/s3.py"] = nil
   132  	cov.Files["common/python/boto.py"] = nil
   133  	assert.Equal(t, []string{
   134  		"common/python/aws/s3.py",
   135  		"common/python/aws/ses.py",
   136  		"common/python/async_unblock.py",
   137  		"common/python/boto.py",
   138  	}, cov.OrderedFiles())
   139  }