github.com/kaixiang/packer@v0.5.2-0.20140114230416-1f5786b0d7f1/command/fix/fixer_pp_vagrant_override_test.go (about)

     1  package fix
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestFixerVagrantPPOverride_Impl(t *testing.T) {
     9  	var _ Fixer = new(FixerVagrantPPOverride)
    10  }
    11  
    12  func TestFixerVagrantPPOverride_Fix(t *testing.T) {
    13  	var f FixerVagrantPPOverride
    14  
    15  	input := map[string]interface{}{
    16  		"post-processors": []interface{}{
    17  			"foo",
    18  
    19  			map[string]interface{}{
    20  				"type": "vagrant",
    21  				"aws": map[string]interface{}{
    22  					"foo": "bar",
    23  				},
    24  			},
    25  
    26  			map[string]interface{}{
    27  				"type": "vsphere",
    28  			},
    29  
    30  			[]interface{}{
    31  				map[string]interface{}{
    32  					"type": "vagrant",
    33  					"vmware": map[string]interface{}{
    34  						"foo": "bar",
    35  					},
    36  				},
    37  			},
    38  		},
    39  	}
    40  
    41  	expected := map[string]interface{}{
    42  		"post-processors": []interface{}{
    43  			"foo",
    44  
    45  			map[string]interface{}{
    46  				"type": "vagrant",
    47  				"override": map[string]interface{}{
    48  					"aws": map[string]interface{}{
    49  						"foo": "bar",
    50  					},
    51  				},
    52  			},
    53  
    54  			map[string]interface{}{
    55  				"type": "vsphere",
    56  			},
    57  
    58  			[]interface{}{
    59  				map[string]interface{}{
    60  					"type": "vagrant",
    61  					"override": map[string]interface{}{
    62  						"vmware": map[string]interface{}{
    63  							"foo": "bar",
    64  						},
    65  					},
    66  				},
    67  			},
    68  		},
    69  	}
    70  
    71  	output, err := f.Fix(input)
    72  	if err != nil {
    73  		t.Fatalf("err: %s", err)
    74  	}
    75  
    76  	if !reflect.DeepEqual(output, expected) {
    77  		t.Fatalf("unexpected: %#v\nexpected: %#v\n", output, expected)
    78  	}
    79  }