2018-09-04 19:56:17 -04:00
|
|
|
package chroot
|
|
|
|
|
|
|
|
import (
|
2019-03-22 09:53:28 -04:00
|
|
|
"testing"
|
|
|
|
|
2018-09-04 19:56:17 -04:00
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
|
|
"github.com/aws/aws-sdk-go/service/ec2"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func buildTestRootDevice() *ec2.BlockDeviceMapping {
|
|
|
|
return &ec2.BlockDeviceMapping{
|
|
|
|
Ebs: &ec2.EbsBlockDevice{
|
|
|
|
VolumeSize: aws.Int64(10),
|
|
|
|
SnapshotId: aws.String("snap-1234"),
|
|
|
|
VolumeType: aws.String("gp2"),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateVolume_Default(t *testing.T) {
|
|
|
|
stepCreateVolume := new(StepCreateVolume)
|
|
|
|
_, err := stepCreateVolume.buildCreateVolumeInput("test-az", buildTestRootDevice())
|
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateVolume_Shrink(t *testing.T) {
|
|
|
|
stepCreateVolume := StepCreateVolume{RootVolumeSize: 1}
|
|
|
|
testRootDevice := buildTestRootDevice()
|
|
|
|
ret, err := stepCreateVolume.buildCreateVolumeInput("test-az", testRootDevice)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
// Ensure that the new value is equal to the size of the old root device
|
|
|
|
assert.Equal(t, *ret.Size, *testRootDevice.Ebs.VolumeSize)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateVolume_Expand(t *testing.T) {
|
|
|
|
stepCreateVolume := StepCreateVolume{RootVolumeSize: 25}
|
|
|
|
testRootDevice := buildTestRootDevice()
|
|
|
|
ret, err := stepCreateVolume.buildCreateVolumeInput("test-az", testRootDevice)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
// Ensure that the new value is equal to the size of the value passed in
|
|
|
|
assert.Equal(t, *ret.Size, stepCreateVolume.RootVolumeSize)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateVolume_io1_to_io1(t *testing.T) {
|
|
|
|
stepCreateVolume := StepCreateVolume{RootVolumeType: "io1"}
|
|
|
|
testRootDevice := buildTestRootDevice()
|
|
|
|
testRootDevice.Ebs.VolumeType = aws.String("io1")
|
|
|
|
testRootDevice.Ebs.Iops = aws.Int64(1000)
|
|
|
|
ret, err := stepCreateVolume.buildCreateVolumeInput("test-az", testRootDevice)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, *ret.VolumeType, stepCreateVolume.RootVolumeType)
|
|
|
|
assert.Equal(t, *ret.Iops, *testRootDevice.Ebs.Iops)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateVolume_io1_to_gp2(t *testing.T) {
|
|
|
|
stepCreateVolume := StepCreateVolume{RootVolumeType: "gp2"}
|
|
|
|
testRootDevice := buildTestRootDevice()
|
|
|
|
testRootDevice.Ebs.VolumeType = aws.String("io1")
|
|
|
|
testRootDevice.Ebs.Iops = aws.Int64(1000)
|
|
|
|
|
|
|
|
ret, err := stepCreateVolume.buildCreateVolumeInput("test-az", testRootDevice)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, *ret.VolumeType, stepCreateVolume.RootVolumeType)
|
|
|
|
assert.Nil(t, ret.Iops)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateVolume_gp2_to_io1(t *testing.T) {
|
|
|
|
stepCreateVolume := StepCreateVolume{RootVolumeType: "io1"}
|
|
|
|
testRootDevice := buildTestRootDevice()
|
|
|
|
|
|
|
|
_, err := stepCreateVolume.buildCreateVolumeInput("test-az", testRootDevice)
|
|
|
|
assert.Error(t, err)
|
|
|
|
}
|