Add some more asset serialization round-tripping tests

This commit is contained in:
joeduffy 2017-07-17 11:30:10 -07:00
parent 4d708c8567
commit 002618e605

View file

@ -10,20 +10,76 @@ import (
func TestAssetSerialize(t *testing.T) {
// Ensure that asset and archive serialization round trips.
text := "a test asset"
asset := NewTextAsset(text)
assetSer := asset.Serialize()
assetDes, isasset := DeserializeAsset(assetSer)
assert.True(t, isasset)
assert.True(t, assetDes.IsText())
assert.Equal(t, text, assetDes.Text)
{
text := "a test asset"
asset := NewTextAsset(text)
assetSer := asset.Serialize()
assetDes, isasset := DeserializeAsset(assetSer)
assert.True(t, isasset)
assert.True(t, assetDes.IsText())
assert.Equal(t, text, assetDes.Text)
arch := NewAssetArchive(map[string]Asset{"foo": asset})
archSer := arch.Serialize()
archDes, isarch := DeserializeArchive(archSer)
assert.True(t, isarch)
assert.True(t, archDes.IsAssets())
assert.Equal(t, 1, len(archDes.Assets))
assert.True(t, archDes.Assets["foo"].IsText())
assert.Equal(t, text, archDes.Assets["foo"].Text)
arch := NewAssetArchive(map[string]Asset{"foo": asset})
archSer := arch.Serialize()
archDes, isarch := DeserializeArchive(archSer)
assert.True(t, isarch)
assert.True(t, archDes.IsAssets())
assert.Equal(t, 1, len(archDes.Assets))
assert.True(t, archDes.Assets["foo"].IsText())
assert.Equal(t, text, archDes.Assets["foo"].Text)
}
{
file := "/dev/null"
asset := NewPathAsset(file)
assetSer := asset.Serialize()
assetDes, isasset := DeserializeAsset(assetSer)
assert.True(t, isasset)
assert.True(t, assetDes.IsPath())
assert.Equal(t, file, assetDes.Path)
arch := NewAssetArchive(map[string]Asset{"foo": asset})
archSer := arch.Serialize()
archDes, isarch := DeserializeArchive(archSer)
assert.True(t, isarch)
assert.True(t, archDes.IsAssets())
assert.Equal(t, 1, len(archDes.Assets))
assert.True(t, archDes.Assets["foo"].IsPath())
assert.Equal(t, file, archDes.Assets["foo"].Path)
}
{
url := "https://pulumi.com/robots.txt"
asset := NewURIAsset(url)
assetSer := asset.Serialize()
assetDes, isasset := DeserializeAsset(assetSer)
assert.True(t, isasset)
assert.True(t, assetDes.IsURI())
assert.Equal(t, url, assetDes.URI)
arch := NewAssetArchive(map[string]Asset{"foo": asset})
archSer := arch.Serialize()
archDes, isarch := DeserializeArchive(archSer)
assert.True(t, isarch)
assert.True(t, archDes.IsAssets())
assert.Equal(t, 1, len(archDes.Assets))
assert.True(t, archDes.Assets["foo"].IsURI())
assert.Equal(t, url, archDes.Assets["foo"].URI)
}
{
file := "/dev/null"
arch := NewPathArchive(file)
archSer := arch.Serialize()
archDes, isarch := DeserializeArchive(archSer)
assert.True(t, isarch)
assert.True(t, archDes.IsPath())
assert.Equal(t, file, archDes.Path)
}
{
url := "https://pulumi.com/robots.tgz"
arch := NewURIArchive(url)
archSer := arch.Serialize()
archDes, isarch := DeserializeArchive(archSer)
assert.True(t, isarch)
assert.True(t, archDes.IsURI())
assert.Equal(t, url, archDes.URI)
}
}