z_mirror/fmm
git clone https://git.raiguard.me/z_mirror/fmm
4a625d5
trunk
1package fmm 2 3import ( 4"testing" 5 6"github.com/stretchr/testify/require" 7) 8 9func TestNewDependency (t * testing.T ) { 10tests := []struct { 11input string 12name string 13version * Version 14kind DependencyKind 15req VersionCmpRes 16 }{ 17 {"flib" ,"flib" ,nil ,DependencyRequired ,VersionAny }, 18 {"\tflib " ,"flib" ,nil ,DependencyRequired ,VersionAny }, 19 {"! flib" ,"flib" ,nil ,DependencyIncompatible ,VersionAny }, 20 {"flib >= 0.10" ,"flib" ,& Version {0 ,10 ,0 },DependencyRequired ,VersionGtEq }, 21 {"flib >= 0.10.0" ,"flib" ,& Version {0 ,10 ,0 },DependencyRequired ,VersionGtEq }, 22 {"flib > 0.10" ,"flib" ,& Version {0 ,10 ,0 },DependencyRequired ,VersionGt }, 23 {"flib>=0.10" ,"flib" ,& Version {0 ,10 ,0 },DependencyRequired ,VersionGtEq }, 24 } 25for _ ,test := range tests { 26dep ,err := NewDependency (test .input ) 27if err != nil { 28t .Error (err ) 29 } 30require .Equal (t ,test .name ,dep .Name ) 31if test .version == nil { 32require .Nil (t ,dep .Version ) 33 }else { 34require .NotNil (t ,dep .Version ) 35 } 36 37require .Equal (t ,test .kind ,dep .Kind ) 38require .Equal (t ,test .req ,dep .Req ) 39 } 40} 41 42func TestDependencyTest (t * testing.T ) { 43tests := []struct { 44dep string 45version Version 46result bool 47 }{ 48 {"flib" ,Version {0 ,1 ,1 },true }, 49 {"! flib" ,Version {0 ,1 ,1 },false }, 50 {"flib >= 0.10" ,Version {0 ,1 ,1 },false }, 51 {"flib >= 0.10" ,Version {0 ,10 ,0 },true }, 52 {"flib >= 0.10.0" ,Version {0 ,10 ,0 },true }, 53 {"flib > 0.10" ,Version {0 ,10 ,0 },false }, 54 {"flib>=0.10" ,Version {0 ,10 ,0 },true }, 55 } 56 57for _ ,test := range tests { 58dep ,err := NewDependency (test .dep ) 59require .NoError (t ,err ) 60require .Equal (t ,dep .Test (& test .version ),test .result ) 61 } 62}