2017-06-13 11:56:07 +00:00
package enry
2016-07-13 17:05:09 +00:00
import (
"bytes"
2017-05-29 08:05:16 +00:00
"fmt"
2017-09-30 13:11:48 +00:00
"sort"
"testing"
2016-07-13 17:05:09 +00:00
2017-05-29 08:05:16 +00:00
"github.com/stretchr/testify/assert"
2016-07-13 17:05:09 +00:00
)
2017-06-21 13:18:27 +00:00
func ( s * EnryTestSuite ) TestIsVendor ( ) {
2017-05-29 08:05:16 +00:00
tests := [ ] struct {
name string
path string
expected bool
} {
{ name : "TestIsVendor_1" , path : "foo/bar" , expected : false } ,
{ name : "TestIsVendor_2" , path : "foo/vendor/foo" , expected : true } ,
{ name : "TestIsVendor_3" , path : ".sublime-project" , expected : true } ,
{ name : "TestIsVendor_4" , path : "leaflet.draw-src.js" , expected : true } ,
{ name : "TestIsVendor_5" , path : "foo/bar/MochiKit.js" , expected : true } ,
{ name : "TestIsVendor_6" , path : "foo/bar/dojo.js" , expected : true } ,
{ name : "TestIsVendor_7" , path : "foo/env/whatever" , expected : true } ,
{ name : "TestIsVendor_8" , path : "foo/.imageset/bar" , expected : true } ,
{ name : "TestIsVendor_9" , path : "Vagrantfile" , expected : true } ,
}
2016-07-13 17:05:09 +00:00
2017-05-29 08:05:16 +00:00
for _ , test := range tests {
is := IsVendor ( test . path )
assert . Equal ( s . T ( ) , is , test . expected , fmt . Sprintf ( "%v: is = %v, expected: %v" , test . name , is , test . expected ) )
}
2016-07-13 17:05:09 +00:00
}
2017-06-21 13:18:27 +00:00
func ( s * EnryTestSuite ) TestIsDocumentation ( ) {
2017-05-29 08:05:16 +00:00
tests := [ ] struct {
name string
path string
expected bool
} {
{ name : "TestIsDocumentation_1" , path : "foo" , expected : false } ,
{ name : "TestIsDocumentation_2" , path : "README" , expected : true } ,
}
for _ , test := range tests {
is := IsDocumentation ( test . path )
assert . Equal ( s . T ( ) , is , test . expected , fmt . Sprintf ( "%v: is = %v, expected: %v" , test . name , is , test . expected ) )
}
2016-07-13 17:05:09 +00:00
}
2017-06-21 13:18:27 +00:00
func ( s * EnryTestSuite ) TestIsConfiguration ( ) {
2017-05-29 08:05:16 +00:00
tests := [ ] struct {
name string
path string
expected bool
} {
{ name : "TestIsConfiguration_1" , path : "foo" , expected : false } ,
{ name : "TestIsConfiguration_2" , path : "foo.ini" , expected : true } ,
2017-06-12 11:42:20 +00:00
{ name : "TestIsConfiguration_3" , path : "/test/path/foo.json" , expected : true } ,
2017-05-29 08:05:16 +00:00
}
for _ , test := range tests {
is := IsConfiguration ( test . path )
assert . Equal ( s . T ( ) , is , test . expected , fmt . Sprintf ( "%v: is = %v, expected: %v" , test . name , is , test . expected ) )
}
}
2016-07-13 17:05:09 +00:00
2017-06-21 13:18:27 +00:00
func ( s * EnryTestSuite ) TestIsBinary ( ) {
2017-05-29 08:05:16 +00:00
tests := [ ] struct {
name string
data [ ] byte
expected bool
} {
{ name : "TestIsBinary_1" , data : [ ] byte ( "foo" ) , expected : false } ,
{ name : "TestIsBinary_2" , data : [ ] byte { 0 } , expected : true } ,
{ name : "TestIsBinary_3" , data : bytes . Repeat ( [ ] byte { 'o' } , 8000 ) , expected : false } ,
}
2016-07-13 17:05:09 +00:00
2017-05-29 08:05:16 +00:00
for _ , test := range tests {
is := IsBinary ( test . data )
assert . Equal ( s . T ( ) , is , test . expected , fmt . Sprintf ( "%v: is = %v, expected: %v" , test . name , is , test . expected ) )
}
2016-07-13 17:05:09 +00:00
}
2017-09-30 13:11:48 +00:00
func TestFileCountListSort ( t * testing . T ) {
sampleData := FileCountList { { "a" , 8 } , { "b" , 65 } , { "c" , 20 } , { "d" , 90 } }
const ascending = "ASC"
const descending = "DESC"
tests := [ ] struct {
name string
data FileCountList
order string
expectedData FileCountList
} {
{
name : "ascending order" ,
data : sampleData ,
order : ascending ,
expectedData : FileCountList { { "a" , 8 } , { "c" , 20 } , { "b" , 65 } , { "d" , 90 } } ,
} ,
{
name : "descending order" ,
data : sampleData ,
order : descending ,
expectedData : FileCountList { { "d" , 90 } , { "b" , 65 } , { "c" , 20 } , { "a" , 8 } } ,
} ,
}
for _ , test := range tests {
t . Run ( test . name , func ( t * testing . T ) {
if test . order == descending {
sort . Sort ( sort . Reverse ( test . data ) )
} else {
sort . Sort ( test . data )
}
for i := 0 ; i < len ( test . data ) ; i ++ {
assert . Equal ( t , test . data [ i ] , test . expectedData [ i ] , fmt . Sprintf ( "%v: FileCount at position %d = %v, expected: %v" , test . name , i , test . data [ i ] , test . expectedData [ i ] ) )
}
} )
}
}