github.com/marksheahan/packer@v0.10.2-0.20160613200515-1acb2d6645a0/builder/azure/common/template/template_builder_test.go (about)

     1  package template
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/Azure/azure-sdk-for-go/arm/compute"
     8  	"github.com/mitchellh/packer/builder/azure/common/approvals"
     9  )
    10  
    11  // Ensure that a Linux template is configured as expected.
    12  //  * Include SSH configuration: authorized key, and key path.
    13  func TestBuildLinux00(t *testing.T) {
    14  	testSubject, err := NewTemplateBuilder()
    15  	if err != nil {
    16  		t.Fatal(err)
    17  	}
    18  
    19  	err = testSubject.BuildLinux("--test-ssh-authorized-key--")
    20  	if err != nil {
    21  		t.Fatal(err)
    22  	}
    23  
    24  	err = testSubject.SetMarketPlaceImage("Canonical", "UbuntuServer", "16.04", "latest")
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  
    29  	doc, err := testSubject.ToJSON()
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	reader := strings.NewReader(*doc)
    35  
    36  	err = approvals.Verify(t, reader)
    37  	if err != nil {
    38  		t.Fatal(err)
    39  	}
    40  }
    41  
    42  // Ensure that a user can specify a custom VHD when building a Linux template.
    43  func TestBuildLinux01(t *testing.T) {
    44  	testSubject, err := NewTemplateBuilder()
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  
    49  	err = testSubject.BuildLinux("--test-ssh-authorized-key--")
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	err = testSubject.SetImageUrl("http://azure/custom.vhd", compute.Linux)
    55  	if err != nil {
    56  		t.Fatal(err)
    57  	}
    58  
    59  	doc, err := testSubject.ToJSON()
    60  	if err != nil {
    61  		t.Fatal(err)
    62  	}
    63  
    64  	reader := strings.NewReader(*doc)
    65  
    66  	err = approvals.Verify(t, reader)
    67  	if err != nil {
    68  		t.Fatal(err)
    69  	}
    70  }
    71  
    72  // Ensure that a Windows template is configured as expected.
    73  //  * Include WinRM configuration.
    74  //  * Include KeyVault configuration, which is needed for WinRM.
    75  func TestBuildWindows00(t *testing.T) {
    76  	testSubject, err := NewTemplateBuilder()
    77  	if err != nil {
    78  		t.Fatal(err)
    79  	}
    80  
    81  	err = testSubject.BuildWindows("--test-key-vault-name", "--test-winrm-certificate-url--")
    82  	if err != nil {
    83  		t.Fatal(err)
    84  	}
    85  
    86  	err = testSubject.SetMarketPlaceImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter", "latest")
    87  	if err != nil {
    88  		t.Fatal(err)
    89  	}
    90  
    91  	doc, err := testSubject.ToJSON()
    92  	if err != nil {
    93  		t.Fatal(err)
    94  	}
    95  
    96  	reader := strings.NewReader(*doc)
    97  
    98  	err = approvals.Verify(t, reader)
    99  	if err != nil {
   100  		t.Fatal(err)
   101  	}
   102  }