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 }