2022-01-10 18:06:12 +02:00
package common_test
import (
2022-12-22 20:19:42 +02:00
"os"
"path"
2022-01-10 18:06:12 +02:00
"testing"
2023-09-06 19:58:00 +03:00
notreg "github.com/notaryproject/notation-go/registry"
2022-01-10 18:06:12 +02:00
. "github.com/smartystreets/goconvey/convey"
2022-10-20 19:39:20 +03:00
2024-02-01 06:34:07 +02:00
"zotregistry.dev/zot/pkg/api/config"
"zotregistry.dev/zot/pkg/common"
2022-01-10 18:06:12 +02:00
)
func TestCommon ( t * testing . T ) {
Convey ( "test Contains()" , t , func ( ) {
first := [ ] string { "apple" , "biscuit" }
So ( common . Contains ( first , "apple" ) , ShouldBeTrue )
So ( common . Contains ( first , "peach" ) , ShouldBeFalse )
So ( common . Contains ( [ ] string { } , "apple" ) , ShouldBeFalse )
} )
2022-12-22 20:19:42 +02:00
2023-03-09 20:43:26 +02:00
Convey ( "test MarshalThroughStruct()" , t , func ( ) {
cfg := config . New ( )
newCfg := struct {
DistSpecVersion string
} { }
_ , err := common . MarshalThroughStruct ( cfg , & newCfg )
So ( err , ShouldBeNil )
So ( newCfg . DistSpecVersion , ShouldEqual , cfg . DistSpecVersion )
// negative
obj := make ( chan int )
toObj := config . New ( )
_ , err = common . MarshalThroughStruct ( obj , & toObj )
So ( err , ShouldNotBeNil )
_ , err = common . MarshalThroughStruct ( toObj , & obj )
So ( err , ShouldNotBeNil )
} )
2022-12-22 20:19:42 +02:00
Convey ( "test dirExists()" , t , func ( ) {
exists := common . DirExists ( "testdir" )
So ( exists , ShouldBeFalse )
2023-02-02 21:39:03 +02:00
tempDir := t . TempDir ( )
2022-12-22 20:19:42 +02:00
2023-02-02 21:39:03 +02:00
file , err := os . Create ( path . Join ( tempDir , "file.txt" ) )
2022-12-22 20:19:42 +02:00
So ( err , ShouldBeNil )
isDir := common . DirExists ( file . Name ( ) )
So ( isDir , ShouldBeFalse )
} )
2023-04-24 21:13:15 +03:00
Convey ( "Index func" , t , func ( ) {
So ( common . Index ( [ ] string { "a" , "b" } , "b" ) , ShouldEqual , 1 )
So ( common . Index ( [ ] string { "a" , "b" } , "c" ) , ShouldEqual , - 1 )
} )
2023-09-06 19:58:00 +03:00
Convey ( "Test ArtifactTypeNotation const has same value as in notaryproject" , t , func ( ) {
So ( common . ArtifactTypeNotation , ShouldEqual , notreg . ArtifactTypeNotation )
} )
2022-12-22 20:19:42 +02:00
}