Stardardize "alt sig"/"alt signature"/"alt signing address" terminology to "alternate signing address".
119 lines
3.1 KiB
Go
119 lines
3.1 KiB
Go
// Copyright (c) 2020-2021 The Decred developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package database
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func exampleAltSignAddrData() *AltSignAddrData {
|
|
return &AltSignAddrData{
|
|
AltSignAddr: randString(35, addrCharset),
|
|
Req: randBytes(1000),
|
|
ReqSig: randString(96, sigCharset),
|
|
Resp: randBytes(1000),
|
|
RespSig: randString(96, sigCharset),
|
|
}
|
|
}
|
|
|
|
// ensureData will confirm that the provided data exists in the database.
|
|
func ensureData(t *testing.T, ticketHash string, wantData *AltSignAddrData) {
|
|
t.Helper()
|
|
|
|
data, err := db.AltSignAddrData(ticketHash)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error fetching alt sign address data: %v", err)
|
|
}
|
|
if !reflect.DeepEqual(wantData, data) {
|
|
t.Fatal("want data different than actual")
|
|
}
|
|
}
|
|
|
|
func testAltSignAddrData(t *testing.T) {
|
|
ticketHash := randString(64, hexCharset)
|
|
|
|
// Not added yet so no values should exist in the db.
|
|
h, err := db.AltSignAddrData(ticketHash)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error fetching alt sign address data: %v", err)
|
|
}
|
|
if h != nil {
|
|
t.Fatal("expected no data")
|
|
}
|
|
|
|
// Insert an alt sign address.
|
|
data := exampleAltSignAddrData()
|
|
if err := db.InsertAltSignAddr(ticketHash, data); err != nil {
|
|
t.Fatalf("unexpected error storing alt sign addr in database: %v", err)
|
|
}
|
|
|
|
ensureData(t, ticketHash, data)
|
|
}
|
|
|
|
func testInsertAltSignAddr(t *testing.T) {
|
|
ticketHash := randString(64, hexCharset)
|
|
|
|
// Not added yet so no values should exist in the db.
|
|
ensureData(t, ticketHash, nil)
|
|
|
|
data := exampleAltSignAddrData()
|
|
// Clear alt sign addr for test.
|
|
data.AltSignAddr = ""
|
|
|
|
if err := db.InsertAltSignAddr(ticketHash, data); err == nil {
|
|
t.Fatalf("expected error for insert blank address")
|
|
}
|
|
|
|
if err := db.InsertAltSignAddr(ticketHash, nil); err == nil {
|
|
t.Fatalf("expected error for nil data")
|
|
}
|
|
|
|
// Still no change on errors.
|
|
ensureData(t, ticketHash, nil)
|
|
|
|
// Re-add alt sig addr.
|
|
data.AltSignAddr = randString(35, addrCharset)
|
|
|
|
// Insert an alt sign addr.
|
|
if err := db.InsertAltSignAddr(ticketHash, data); err != nil {
|
|
t.Fatalf("unexpected error storing alt sig addr in database: %v", err)
|
|
}
|
|
|
|
ensureData(t, ticketHash, data)
|
|
|
|
// Further additions should error and not change the data.
|
|
secondData := exampleAltSignAddrData()
|
|
secondData.AltSignAddr = data.AltSignAddr
|
|
if err := db.InsertAltSignAddr(ticketHash, secondData); err == nil {
|
|
t.Fatalf("expected error for second alt sig addr addition")
|
|
}
|
|
|
|
ensureData(t, ticketHash, data)
|
|
}
|
|
|
|
func testDeleteAltSignAddr(t *testing.T) {
|
|
ticketHash := randString(64, hexCharset)
|
|
|
|
// Nothing to delete.
|
|
if err := db.DeleteAltSignAddr(ticketHash); err != nil {
|
|
t.Fatalf("unexpected error deleting nonexistant alt sign addr")
|
|
}
|
|
|
|
// Insert an alt sign addr.
|
|
data := exampleAltSignAddrData()
|
|
if err := db.InsertAltSignAddr(ticketHash, data); err != nil {
|
|
t.Fatalf("unexpected error storing alt sign addr in database: %v", err)
|
|
}
|
|
|
|
ensureData(t, ticketHash, data)
|
|
|
|
if err := db.DeleteAltSignAddr(ticketHash); err != nil {
|
|
t.Fatalf("unexpected error deleting alt sign addr: %v", err)
|
|
}
|
|
|
|
ensureData(t, ticketHash, nil)
|
|
}
|