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