github.com/frostornge/solgen@v0.1.3/proto/proto_test.go (about)

     1  package proto
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  	"testing"
     7  
     8  	"github.com/Flaque/filet"
     9  	"github.com/frostornge/solgen/deployment"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  const TestDeployment = `{"Migrations":{"abi":[{"constant":true,"inputs":[],"name":"last_completed_migration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":false,"inputs":[{"name":"completed","type":"uint256"}],"name":"setCompleted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_address","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]}}`
    14  const TestDeploymentError = `{"Migrations":{"abi":[{"constant":"Hello","inputs":[],"name":"last_completed_migration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":false,"inputs":[{"name":"completed","type":"uint256"}],"name":"setCompleted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_address","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]}}`
    15  const TestDeploymentPath = "deployment.json"
    16  
    17  func TestGenerateBind(t *testing.T) {
    18  	defer filet.CleanUp(t)
    19  	dirName := filet.TmpDir(t, "")
    20  	tmpName := filepath.Join(dirName, TestDeploymentPath)
    21  	filet.File(t, tmpName, TestDeployment)
    22  
    23  	assert.NoError(t, os.Chdir(".."))
    24  
    25  	deployments, err := deployment.GetDeploymentsFrom(tmpName)
    26  	assert.NoError(t, err)
    27  	assert.NoError(t, GenerateBind(dirName, deployments, Options{}))
    28  
    29  	assert.True(t, filet.Exists(t, filepath.Join(dirName, "migrations.proto")))
    30  }
    31  
    32  func TestGenerateBind_Airbloc(t *testing.T) {
    33  	assert.NoError(t, os.Chdir(".."))
    34  	assert.NoError(t, os.RemoveAll("./test/proto"))
    35  
    36  	deployments, err := deployment.GetDeploymentsFrom("http://localhost:8500")
    37  	assert.NoError(t, err)
    38  	assert.NoError(t, GenerateBind("./test/proto", deployments, Options{
    39  		"Accounts":           {"(address,uint8,address,address)": "Account"},
    40  		"AppRegistry":        {"(string,address,bytes32)": "App"},
    41  		"ControllerRegistry": {"(address,uint256)": "DataController"},
    42  		"DataTypeRegistry":   {"(string,address,bytes32)": "DataType"},
    43  		"Exchange":           {"(string,address,bytes20[],uint256,uint256,(address,bytes4,bytes),uint8)": "Offer"},
    44  	}))
    45  
    46  }