phone_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package store
  2. import (
  3. "context"
  4. "errors"
  5. "testing"
  6. )
  7. func TestPhoneAssociationPersistsByICCID(t *testing.T) {
  8. database, err := Open(context.Background(), ":memory:")
  9. if err != nil {
  10. t.Fatal(err)
  11. }
  12. t.Cleanup(func() { _ = database.Close() })
  13. value := PhoneAssociation{
  14. ICCID: "89441000400311061404",
  15. DeviceID: "ec20",
  16. Number: "+447700900123",
  17. Source: "ims_p_associated_uri",
  18. }
  19. if err := database.UpsertPhoneAssociation(context.Background(), value); err != nil {
  20. t.Fatal(err)
  21. }
  22. got, err := database.PhoneAssociation(context.Background(), value.ICCID)
  23. if err != nil {
  24. t.Fatal(err)
  25. }
  26. if got.Number != value.Number || got.Source != value.Source || got.DeviceID != value.DeviceID {
  27. t.Fatalf("PhoneAssociation() = %#v", got)
  28. }
  29. value.Number = "+447700900456"
  30. if err := database.UpsertPhoneAssociation(context.Background(), value); err != nil {
  31. t.Fatal(err)
  32. }
  33. got, err = database.PhoneAssociation(context.Background(), value.ICCID)
  34. if err != nil {
  35. t.Fatal(err)
  36. }
  37. if got.Number != value.Number {
  38. t.Fatalf("updated number = %q", got.Number)
  39. }
  40. if _, err := database.PhoneAssociation(context.Background(), "missing"); !errors.Is(err, ErrNotFound) {
  41. t.Fatalf("missing error = %v", err)
  42. }
  43. }