fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

1package messagesize 2 3import ( 4 "errors" 5 "math" 6 "testing" 7 8 "github.com/google/go-cmp/cmp" 9) 10 11func TestGetMessageSizeBytesFromString(t *testing.T) { 12 13 t.Run("8 MB", func(t *testing.T) { 14 sizeString := "8MB" 15 16 size, err := getMessageSizeBytesFromString(sizeString, 0, math.MaxInt) 17 18 if err != nil { 19 t.Fatalf("unexpected error: %s", err) 20 } 21 22 expectedSize := 8 * 1000 * 1000 23 if diff := cmp.Diff(expectedSize, size); diff != "" { 24 t.Fatalf("unexpected size (-want +got):\n%s", diff) 25 } 26 }) 27 28 t.Run("just small enough", func(t *testing.T) { 29 sizeString := "4MB" // inside large-end of range 30 31 fourMegaBytes := 4 * 1000 * 1000 32 size, err := getMessageSizeBytesFromString(sizeString, 0, uint64(fourMegaBytes)) 33 if err != nil { 34 t.Fatalf("unexpected error: %s", err) 35 } 36 37 if diff := cmp.Diff(fourMegaBytes, size); diff != "" { 38 t.Fatalf("unexpected size (-want +got):\n%s", diff) 39 } 40 }) 41 42 t.Run("just large enough", func(t *testing.T) { 43 sizeString := "4MB" // inside low-end of range 44 45 fourMegaBytes := 4 * 1000 * 1000 46 size, err := getMessageSizeBytesFromString(sizeString, uint64(fourMegaBytes), math.MaxInt) 47 if err != nil { 48 t.Fatalf("unexpected error: %s", err) 49 } 50 51 if diff := cmp.Diff(fourMegaBytes, size); diff != "" { 52 t.Fatalf("unexpected size (-want +got):\n%s", diff) 53 } 54 }) 55 56 t.Run("invalid size", func(t *testing.T) { 57 sizeString := "this-is-not-a-size" 58 59 _, err := getMessageSizeBytesFromString(sizeString, 0, math.MaxInt) 60 var expectedErr *parseError 61 if !errors.As(err, &expectedErr) { 62 t.Fatalf("expected parseError, got error %q", err) 63 } 64 }) 65 66 t.Run("empty", func(t *testing.T) { 67 sizeString := "" 68 69 _, err := getMessageSizeBytesFromString(sizeString, 0, math.MaxInt) 70 var expectedErr *parseError 71 if !errors.As(err, &expectedErr) { 72 t.Fatalf("expected parseError, got error %q", err) 73 } 74 }) 75 76 t.Run("too large", func(t *testing.T) { 77 sizeString := "4MB" // above range 78 79 twoMegaBytes := 2 * 1024 * 1024 80 _, err := getMessageSizeBytesFromString(sizeString, 0, uint64(twoMegaBytes)) 81 var expectedErr *sizeOutOfRangeError 82 if !errors.As(err, &expectedErr) { 83 t.Fatalf("expected sizeOutOfRangeError, got error %q", err) 84 } 85 }) 86 87 t.Run("too small", func(t *testing.T) { 88 sizeString := "1MB" // below range 89 90 twoMegaBytes := 2 * 1024 * 1024 91 _, err := getMessageSizeBytesFromString(sizeString, uint64(twoMegaBytes), math.MaxInt) 92 var expectedErr *sizeOutOfRangeError 93 if !errors.As(err, &expectedErr) { 94 t.Fatalf("expected sizeOutOfRangeError, got error %q", err) 95 } 96 }) 97}