github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/builtin/providers/template/datasource_cloudinit_config_test.go (about)

     1  package template
     2  
     3  import (
     4  	"testing"
     5  
     6  	r "github.com/hashicorp/terraform/helper/resource"
     7  )
     8  
     9  func TestRender(t *testing.T) {
    10  	testCases := []struct {
    11  		ResourceBlock string
    12  		Expected      string
    13  	}{
    14  		{
    15  			`data "template_cloudinit_config" "foo" {
    16  				gzip = false
    17  				base64_encode = false
    18  
    19  				part {
    20  					content_type = "text/x-shellscript"
    21  					content = "baz"
    22  				}
    23  			}`,
    24  			"Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/x-shellscript\r\nMime-Version: 1.0\r\n\r\nbaz\r\n--MIMEBOUNDARY--\r\n",
    25  		},
    26  		{
    27  			`data "template_cloudinit_config" "foo" {
    28  				gzip = false
    29  				base64_encode = false
    30  
    31  				part {
    32  					content_type = "text/x-shellscript"
    33  					content = "baz"
    34  					filename = "foobar.sh"
    35  				}
    36  			}`,
    37  			"Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n--MIMEBOUNDARY\r\nContent-Disposition: attachment; filename=\"foobar.sh\"\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/x-shellscript\r\nMime-Version: 1.0\r\n\r\nbaz\r\n--MIMEBOUNDARY--\r\n",
    38  		},
    39  		{
    40  			`data "template_cloudinit_config" "foo" {
    41  				gzip = false
    42  				base64_encode = false
    43  
    44  				part {
    45  					content_type = "text/x-shellscript"
    46  					content = "baz"
    47  				}
    48  				part {
    49  					content_type = "text/x-shellscript"
    50  					content = "ffbaz"
    51  				}
    52  			}`,
    53  			"Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/x-shellscript\r\nMime-Version: 1.0\r\n\r\nbaz\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/x-shellscript\r\nMime-Version: 1.0\r\n\r\nffbaz\r\n--MIMEBOUNDARY--\r\n",
    54  		},
    55  	}
    56  
    57  	for _, tt := range testCases {
    58  		r.UnitTest(t, r.TestCase{
    59  			Providers: testProviders,
    60  			Steps: []r.TestStep{
    61  				r.TestStep{
    62  					Config: tt.ResourceBlock,
    63  					Check: r.ComposeTestCheckFunc(
    64  						r.TestCheckResourceAttr("data.template_cloudinit_config.foo", "rendered", tt.Expected),
    65  					),
    66  				},
    67  			},
    68  		})
    69  	}
    70  }
    71  
    72  var testCloudInitConfig_basic = `
    73  data "template_cloudinit_config" "config" {
    74    part {
    75      content_type = "text/x-shellscript"
    76      content      = "baz"
    77    }
    78  }`
    79  
    80  var testCloudInitConfig_basic_expected = `Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/x-shellscript\r\nMime-Version: 1.0\r\n\r\nbaz\r\n--MIMEBOUNDARY--\r\n`