<?php

//Mock::Generate('Wact_Template_Compiler_Attribute_Expression', 'MockExpressionTemplateAttribute');
Mock::Generate('Wact_Template_Compiler_Attribute', 'MockTemplateAttribute');
Mock::Generate('Wact_Template_Compiler_Node', 'MockTemplateNode');
//Mock::Generate('Wact_Php_Writer', 'MockCodeWriter');
//Mock::Generate('Expression', 'MockExpression');

/*
Mock::generatePartial(
        'Wact_Template_Compiler_Attribute_Expression',
        'ExpressionTemplateAttributePartialMock',
        array('createExpression'));
*/

class Wact_Template_Compiler_Attribute_CompoundTestCase extends Wact_Test_Case {

/*
    function setUp() {
        $this->literal = new MockTemplateAttribute($this);
        $this->expression = new MockExpressionTemplateAttribute($this);
        $this->attribute = new Wact_Template_Compiler_Attribute_Compound('test');
        $this->attribute->addAttributeFragment($this->literal);
        $this->attribute->addAttributeFragment($this->expression);
    }
*/
/*
    function tearDown() {
        $this->literal->tally();
        $this->expression->tally();
        unset($this->literal);
        unset($this->expression);
        parent::tearDown();
    }
*/
/*
    function testIsConstantAllTrue() {
        $this->literal->setReturnValue('IsConstant', TRUE);
        $this->literal->expectOnce('IsConstant');
        $this->expression->setReturnValue('IsConstant', TRUE);
        $this->expression->expectOnce('IsConstant');
        $this->assertTrue($this->attribute->isConstant());
    }
*/
/*
    function testIsConstantAllFalse() {
        $this->literal->setReturnValue('IsConstant', FALSE);
        $this->literal->expectOnce('IsConstant');
        $this->expression->setReturnValue('IsConstant', FALSE);
        $this->expression->expectNever('IsConstant');
        $this->assertFalse($this->attribute->isConstant());
    }
*/
/*
    function testIsConstantMixed() {
        $this->literal->setReturnValue('IsConstant', TRUE);
        $this->literal->expectOnce('IsConstant');
        $this->expression->setReturnValue('IsConstant', FALSE);
        $this->expression->expectOnce('IsConstant');
        $this->assertFalse($this->attribute->isConstant());
    }
*/
/*
    function testGetValue() {
        $this->literal->setReturnValue('getValue', 'Hur');
        $this->literal->expectOnce('getValue');
        $this->expression->setReturnValue('getValue', 'rah');
        $this->expression->expectOnce('getValue');
        $this->assertEqual($this->attribute->getValue(), 'Hurrah');
    }
*/
/*
    function testGenerate() {
        $this->literal->expectOnce('generateFragment');
        $this->expression->expectOnce('generateFragment');
        $code = new MockCodeWriter($this);
        $this->attribute->generate($code);
    }
*/
/*
    function testGenerateExpression() {
        $this->literal->expectOnce('generatePreStatement');
        $this->literal->expectOnce('generateExpression');
        $this->literal->expectOnce('generatePostStatement');
        $this->expression->expectOnce('generatePreStatement');
        $this->expression->expectOnce('generateExpression');
        $this->expression->expectOnce('generatePostStatement');

        $code = new MockCodeWriter($this);
        $code->expectArgumentsAt(0, 'writePHP', array('('));
        $code->expectArgumentsAt(1, 'writePHP', array(''));
        $code->expectArgumentsAt(2, 'writePHP', array('.'));
        $code->expectArgumentsAt(3, 'writePHP', array(')'));

        $this->attribute->generatePreStatement($code);
        $this->attribute->generateExpression($code);
        $this->attribute->generatePostStatement($code);
    }
*/

/*
    function testPrepare() {
        $this->literal->expectOnce('prepare');
        $this->expression->expectOnce('prepare');
        $code = new MockCodeWriter($this);
        $this->attribute->prepare($code);
    }
*/

}

?>
