package txscript import ( "testing" "github.com/stretchr/testify/require" ) func TestCreationParseLoopClaim(t *testing.T) { r := require.New(t) claim, err := ClaimNameScript("tester", "value") r.NoError(err) parsed, err := parseScript(claim) r.NoError(err) r.True(isClaimName(parsed)) r.False(isSupportClaim(parsed)) r.False(isUpdateClaim(parsed)) script, err := DecodeClaimScript(claim) r.NoError(err) r.Equal([]byte("tester"), script.Name()) r.Equal([]byte("value"), script.Value()) } func TestCreationParseLoopUpdate(t *testing.T) { r := require.New(t) claimID := []byte("12345123451234512345") claim, err := UpdateClaimScript("tester", claimID, "value") r.NoError(err) parsed, err := parseScript(claim) r.NoError(err) r.False(isSupportClaim(parsed)) r.False(isClaimName(parsed)) r.True(isUpdateClaim(parsed)) script, err := DecodeClaimScript(claim) r.NoError(err) r.Equal([]byte("tester"), script.Name()) r.Equal(claimID, script.ClaimID()) r.Equal([]byte("value"), script.Value()) } func TestCreationParseLoopSupport(t *testing.T) { r := require.New(t) claimID := []byte("12345123451234512345") claim, err := SupportClaimScript("tester", claimID, []byte("value")) r.NoError(err) parsed, err := parseScript(claim) r.NoError(err) r.True(isSupportClaim(parsed)) r.False(isClaimName(parsed)) r.False(isUpdateClaim(parsed)) script, err := DecodeClaimScript(claim) r.NoError(err) r.Equal([]byte("tester"), script.Name()) r.Equal(claimID, script.ClaimID()) r.Equal([]byte("value"), script.Value()) claim, err = SupportClaimScript("tester", claimID, nil) r.NoError(err) script, err = DecodeClaimScript(claim) r.NoError(err) r.Equal([]byte("tester"), script.Name()) r.Equal(claimID, script.ClaimID()) r.Nil(script.Value()) } func TestInvalidChars(t *testing.T) { r := require.New(t) script, err := ClaimNameScript("tester", "value") r.NoError(err) r.NoError(AllClaimsAreSane(script, true)) for i := range []byte(illegalChars) { script, err := ClaimNameScript("a"+illegalChars[i:i+1], "value") r.NoError(err) r.Error(AllClaimsAreSane(script, true)) } }