From 24e3310f1330c3104bf9fe9b89d744512895afb9 Mon Sep 17 00:00:00 2001 From: Vadym Popov Date: Sun, 12 Aug 2018 16:16:21 +0300 Subject: [PATCH] channeldb: payment statuses migration test --- channeldb/migrations_test.go | 71 ++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 channeldb/migrations_test.go diff --git a/channeldb/migrations_test.go b/channeldb/migrations_test.go new file mode 100644 index 00000000..6adf76c1 --- /dev/null +++ b/channeldb/migrations_test.go @@ -0,0 +1,71 @@ +package channeldb + +import ( + "crypto/sha256" + "testing" +) + +func TestPaymentStatusesMigration(t *testing.T) { + t.Parallel() + + fakePayment := makeFakePayment() + paymentHash := sha256.Sum256(fakePayment.PaymentPreimage[:]) + + // Add fake payment to the test database and verifies that it was created + // and there is only one payment and its status is not "Completed". + beforeMigrationFunc := func(d *DB) { + if err := d.AddPayment(fakePayment); err != nil { + t.Fatalf("unable to add payment: %v", err) + } + + payments, err := d.FetchAllPayments() + if err != nil { + t.Fatalf("unable to fetch payments: %v", err) + } + + if len(payments) != 1 { + t.Fatalf("wrong qty of paymets: expected 1, got %v", + len(payments)) + } + + paymentStatus, err := d.FetchPaymentStatus(paymentHash) + if err != nil { + t.Fatalf("unable to fetch payment status: %v", err) + } + + // We should receive default status if we have any in database. + if paymentStatus != StatusGrounded { + t.Fatalf("wrong payment status: expected %v, got %v", + StatusGrounded.String(), paymentStatus.String()) + } + } + + // Verify that was created payment status "Completed" for our one fake + // payment. + afterMigrationFunc := func(d *DB) { + meta, err := d.FetchMeta(nil) + if err != nil { + t.Fatal(err) + } + + if meta.DbVersionNumber != 1 { + t.Fatal("migration 'paymentStatusesMigration' wasn't applied") + } + + paymentStatus, err := d.FetchPaymentStatus(paymentHash) + if err != nil { + t.Fatalf("unable to fetch payment status: %v", err) + } + + if paymentStatus != StatusCompleted { + t.Fatalf("wrong payment status: expected %v, got %v", + StatusCompleted.String(), paymentStatus.String()) + } + } + + applyMigration(t, + beforeMigrationFunc, + afterMigrationFunc, + paymentStatusesMigration, + false) +}