mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 00:27:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package proto
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/libp2p/go-libp2p/core/crypto"
 | 
						|
	"github.com/libp2p/go-libp2p/core/peer"
 | 
						|
	"github.com/libp2p/go-libp2p/core/record"
 | 
						|
)
 | 
						|
 | 
						|
func TestReservationVoucher(t *testing.T) {
 | 
						|
	relayPrivk, relayPubk, err := crypto.GenerateKeyPair(crypto.Ed25519, 0)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	_, peerPubk, err := crypto.GenerateKeyPair(crypto.Ed25519, 0)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	relayID, err := peer.IDFromPublicKey(relayPubk)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	peerID, err := peer.IDFromPublicKey(peerPubk)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	rsvp := &ReservationVoucher{
 | 
						|
		Relay:      relayID,
 | 
						|
		Peer:       peerID,
 | 
						|
		Expiration: time.Now().Add(time.Hour),
 | 
						|
	}
 | 
						|
 | 
						|
	envelope, err := record.Seal(rsvp, relayPrivk)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	blob, err := envelope.Marshal()
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	_, rec, err := record.ConsumeEnvelope(blob, RecordDomain)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	rsvp2, ok := rec.(*ReservationVoucher)
 | 
						|
	if !ok {
 | 
						|
		t.Fatalf("invalid record type %+T", rec)
 | 
						|
	}
 | 
						|
 | 
						|
	if rsvp.Relay != rsvp2.Relay {
 | 
						|
		t.Fatal("relay IDs don't match")
 | 
						|
	}
 | 
						|
	if rsvp.Peer != rsvp2.Peer {
 | 
						|
		t.Fatal("peer IDs don't match")
 | 
						|
	}
 | 
						|
	if rsvp.Expiration.Unix() != rsvp2.Expiration.Unix() {
 | 
						|
		t.Fatal("expirations don't match")
 | 
						|
	}
 | 
						|
}
 |