<?php

use BeSimple\SoapCommon\Helper as BeSimpleSoapHelper;
use BeSimple\SoapServer\SoapServer as BeSimpleSoapServer;

require '../../../BeSimpleSoapServer/tests/bootstrap.php';

class base64Binary
{
    public $_;
    public $contentType;
}

class AttachmentType
{
    public $fileName;
    public $binaryData;
}

class AttachmentRequest extends AttachmentType
{
}

$options = array(
    'soap_version'    => SOAP_1_1,
    'features'        => SOAP_SINGLE_ELEMENT_ARRAYS, // make sure that result is array for size=1
    'attachment_type' => BeSimpleSoapHelper::ATTACHMENTS_TYPE_MTOM,
    'cache_wsdl'      => WSDL_CACHE_NONE,
    'classmap'        => array(
        'base64Binary'      => 'base64Binary',
        'AttachmentRequest' => 'AttachmentRequest',
    ),
);

class Mtom
{
    public function attachment(AttachmentRequest $attachment)
    {
        $b64 = $attachment->binaryData;

        file_put_contents('test.txt', var_export(array(
            $attachment->fileName,
            $b64->_,
            $b64->contentType
        ), true));

        return 'done';
    }
}

$ss = new BeSimpleSoapServer('MTOM.wsdl', $options);
$ss->setClass('Mtom');
$ss->handle();