50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
| package volumes
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| func TestExtractVolumeID(t *testing.T) {
 | |
| 	var tests = []struct {
 | |
| 		input          string
 | |
| 		expectedResult string
 | |
| 		expectedErr    error
 | |
| 	}{
 | |
| 		{
 | |
| 			input:          "aws://eu-central-1c/vol-01234a5b6c78df9gh",
 | |
| 			expectedResult: "vol-01234a5b6c78df9gh",
 | |
| 			expectedErr:    nil,
 | |
| 		},
 | |
| 		{
 | |
| 			input:          "vol-0g9fd87c6b5a43210",
 | |
| 			expectedResult: "vol-0g9fd87c6b5a43210",
 | |
| 			expectedErr:    nil,
 | |
| 		},
 | |
| 		{
 | |
| 			input:          "aws://eu-central-1c/01234a5b6c78df9g0",
 | |
| 			expectedResult: "",
 | |
| 			expectedErr:    fmt.Errorf("malformed EBS volume id %q", "aws://eu-central-1c/01234a5b6c78df9g0"),
 | |
| 		},
 | |
| 		{
 | |
| 			input:          "hg9fd87c6b5a43210",
 | |
| 			expectedResult: "",
 | |
| 			expectedErr:    fmt.Errorf("malformed EBS volume id %q", "hg9fd87c6b5a43210"),
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	resizer := EBSVolumeResizer{}
 | |
| 
 | |
| 	for _, tt := range tests {
 | |
| 		volumeId, err := resizer.ExtractVolumeID(tt.input)
 | |
| 		if volumeId != tt.expectedResult {
 | |
| 			t.Errorf("%s expected: %s, got %s", t.Name(), tt.expectedResult, volumeId)
 | |
| 		}
 | |
| 		if err != tt.expectedErr {
 | |
| 			if tt.expectedErr != nil && err.Error() != tt.expectedErr.Error() {
 | |
| 				t.Errorf("%s unexpected error: got %v", t.Name(), err)
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |