2017-04-06 05:19:17 -04:00
package scaleway
import (
"testing"
2020-12-17 16:29:25 -05:00
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
2017-04-06 05:19:17 -04:00
)
func TestArtifact_Impl ( t * testing . T ) {
var raw interface { }
raw = & Artifact { }
2020-11-19 15:17:11 -05:00
if _ , ok := raw . ( packersdk . Artifact ) ; ! ok {
2017-04-06 05:19:17 -04:00
t . Fatalf ( "Artifact should be artifact" )
}
}
func TestArtifactId ( t * testing . T ) {
2020-01-30 05:27:58 -05:00
generatedData := make ( map [ string ] interface { } )
a := & Artifact { "packer-foobar-image" , "cc586e45-5156-4f71-b223-cf406b10dd1d" , "packer-foobar-snapshot" , "cc586e45-5156-4f71-b223-cf406b10dd1c" , "ams1" , nil , generatedData }
2017-04-11 06:19:28 -04:00
expected := "ams1:cc586e45-5156-4f71-b223-cf406b10dd1d"
2017-04-06 05:19:17 -04:00
if a . Id ( ) != expected {
t . Fatalf ( "artifact ID should match: %v" , expected )
}
}
func TestArtifactString ( t * testing . T ) {
2020-01-30 05:27:58 -05:00
generatedData := make ( map [ string ] interface { } )
a := & Artifact { "packer-foobar-image" , "cc586e45-5156-4f71-b223-cf406b10dd1d" , "packer-foobar-snapshot" , "cc586e45-5156-4f71-b223-cf406b10dd1c" , "ams1" , nil , generatedData }
2020-09-09 04:27:48 -04:00
expected := "An image was created: 'packer-foobar-image' (ID: cc586e45-5156-4f71-b223-cf406b10dd1d) in zone 'ams1' based on snapshot 'packer-foobar-snapshot' (ID: cc586e45-5156-4f71-b223-cf406b10dd1c)"
2017-04-06 05:19:17 -04:00
if a . String ( ) != expected {
t . Fatalf ( "artifact string should match: %v" , expected )
}
}
2020-01-30 05:27:58 -05:00
func TestArtifactState_StateData ( t * testing . T ) {
expectedData := "this is the data"
artifact := & Artifact {
StateData : map [ string ] interface { } { "state_data" : expectedData } ,
}
// Valid state
result := artifact . State ( "state_data" )
if result != expectedData {
t . Fatalf ( "Bad: State data was %s instead of %s" , result , expectedData )
}
// Invalid state
result = artifact . State ( "invalid_key" )
if result != nil {
t . Fatalf ( "Bad: State should be nil for invalid state data name" )
}
// Nil StateData should not fail and should return nil
artifact = & Artifact { }
result = artifact . State ( "key" )
if result != nil {
t . Fatalf ( "Bad: State should be nil for nil StateData" )
}
}