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 }