pragma solidity ^0.4.24;

//import "./ThrowProxy.sol";
import "./SimpleContract.sol";

contract TestSimpleContract {
    
    uint256 public values = 15;
    ThrowProxy proxy;
    SimpleContract simple = new SimpleContract();
    

    
    function returnValue() public returns (uint256) {
        return values;
    }
    

    
      
    function testThrowProxy() public {
        proxy = new ThrowProxy(address(simple));

        SimpleContract(address(proxy)).returnValue();
        
    }
}

// Proxy contract for testing throws
contract ThrowProxy {
    address public target;
    bytes data;

    constructor(address _target) public {
        target = _target;
    }

    //prime the data using the fallback function.
    function() public {
        data = msg.data;
    }

    function execute() public returns (bool){
        return target.call(data);
    }
}