public function testPrepackage()
    {
        $response = <<<EOS
\t\t\t<template>
\t\t\t\t<guid>a_284964_14csd05aa7a3eb4f248772cd163b60cb17</guid>
\t\t\t\t<redirect-token>24d8bb96a9144d319cc32f91e-4-14c05aa7a3eb4f243b60cb17</redirect-token>
\t\t\t\t<subject>Sample NDA</subject>
\t\t\t\t<message>Please sign this document.</message>
\t\t\t\t<filename>disclosure.pdf</filename>
\t\t\t\t<type>Document</type>
\t\t\t\t<tags>nda</tags>
\t\t\t\t<merge-fields>
\t\t\t\t\t<merge-field>
\t\t\t\t\t\t<page>1</page>
\t\t\t\t\t\t<name>Your Name</name>
\t\t\t\t\t\t<id>a_2843964_14c05aa7a3e72cd163b60cb17_10152369</id>
\t\t\t\t\t</merge-field>
\t\t\t\t\t<merge-field>
\t\t\t\t\t\t<page>1</page>
\t\t\t\t\t\t<name>Your Idea</name>
\t\t\t\t\t\t<id>a_2843964_14c05aa7a3dfefd163b60cb17_10152370</id>
\t\t\t\t\t</merge-field>
\t\t\t\t</merge-fields>
\t\t\t\t<roles>
\t\t\t\t\t<role>
\t\t\t\t\t\t<document-role-id>signer_A</document-role-id>
\t\t\t\t\t\t<must-sign>true</must-sign>
\t\t\t\t\t\t<is-sender>true</is-sender>
\t\t\t\t\t\t<name>Document Sender</name>
\t\t\t\t\t</role>
\t\t\t\t\t<role>
\t\t\t\t\t\t<document-role-id>signer_B</document-role-id>
\t\t\t\t\t\t<must-sign>true</must-sign>
\t\t\t\t\t\t<is-sender>false</is-sender>
\t\t\t\t\t\t<name>Company Officer</name>
\t\t\t\t\t</role>
\t\t\t\t</roles>
\t\t\t\t<content-type>pdf</content-type>
\t\t\t\t<created-at>2010-10-10T14:41:08-07:00</created-at>
\t\t\t\t<pages>
\t\t\t\t\t<page>
\t\t\t\t\t\t<page-number>1</page-number>
\t\t\t\t\t\t<original-template-guid>a_2824964_14c05aa7ffrrecd163bx0cb17</original-template-guid>
\t\t\t\t\t\t<original-template-filename>disclosure.pdf</original-template-filename>
\t\t\t\t\t</page>
\t\t\t\t</pages>
\t\t\t\t<size>57740</size>
\t\t\t</template>
EOS;
        $self = $this;
        $client = \Mockery::mock('client');
        $client->shouldReceive('post')->with('/api/templates/1234/prepackage.xml', \Mockery::on(function ($body) use($self) {
            $self->assertEqualXml('<callback_location>http://example.com/</callback_location>', $body);
            return true;
        }))->andReturn($response);
        $prepackaged = Template::prepackage($client, '1234', 'http://example.com/');
        $this->assertEquals('a_284964_14csd05aa7a3eb4f248772cd163b60cb17', $prepackaged->guid);
        $this->assertEquals('Your Name', $prepackaged->merge_fields[0]->name);
        $this->assertEquals('true', $prepackaged->roles[0]->is_sender);
        $this->assertEquals('disclosure.pdf', $prepackaged->pages[0]->original_template_filename);
    }