1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
package unit
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
)
func TestAccountInvoices_List(t *testing.T) {
fixtureData, err := fixtures.GetFixture("account_invoices_list")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockGet("account/invoices", fixtureData)
invoices, err := base.Client.ListInvoices(context.Background(), nil)
if err != nil {
t.Fatalf("Error listing invoices: %v", err)
}
assert.Equal(t, 1, len(invoices))
invoice := invoices[0]
assert.Equal(t, "linode", invoice.BillingSource)
assert.Equal(t, 123, invoice.ID)
assert.Equal(t, "Invoice", invoice.Label)
assert.Equal(t, float32(120.25), invoice.Subtotal)
assert.Equal(t, float32(12.25), invoice.Tax)
assert.Equal(t, "PA STATE TAX", invoice.TaxSummary[0].Name)
assert.Equal(t, float32(12.25), invoice.TaxSummary[0].Tax)
assert.Equal(t, float32(132.5), invoice.Total)
}
func TestAccountInvoices_Get(t *testing.T) {
fixtureData, err := fixtures.GetFixture("account_invoices_get")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockGet("account/invoices/123", fixtureData)
invoice, err := base.Client.GetInvoice(context.Background(), 123)
if err != nil {
t.Fatalf("Error getting invoice: %v", err)
}
assert.Equal(t, "linode", invoice.BillingSource)
assert.Equal(t, 123, invoice.ID)
assert.Equal(t, "Invoice", invoice.Label)
assert.Equal(t, float32(120.25), invoice.Subtotal)
assert.Equal(t, float32(12.25), invoice.Tax)
assert.Equal(t, "PA STATE TAX", invoice.TaxSummary[0].Name)
assert.Equal(t, float32(12.25), invoice.TaxSummary[0].Tax)
assert.Equal(t, float32(132.5), invoice.Total)
}
func TestAccountInvoiceItems_List(t *testing.T) {
fixtureData, err := fixtures.GetFixture("account_invoice_items_list")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockGet("account/invoices/123/items", fixtureData)
invoiceitems, err := base.Client.ListInvoiceItems(context.Background(), 123, nil)
if err != nil {
t.Fatalf("Error listing invoice items: %v", err)
}
assert.Equal(t, 1, len(invoiceitems))
invoiceItem := invoiceitems[0]
assert.Equal(t, float32(20.2), invoiceItem.Amount)
assert.Equal(t, "Linode 123", invoiceItem.Label)
assert.Equal(t, 4, invoiceItem.Quantity)
assert.Equal(t, "us-west", *invoiceItem.Region)
assert.Equal(t, float32(1.25), invoiceItem.Tax)
assert.Equal(t, float32(21.45), invoiceItem.Total)
assert.Equal(t, "hourly", invoiceItem.Type)
assert.Equal(t, float32(5.05), invoiceItem.UnitPrice)
}
|