package gcs
import (
"context"
"io"
"net/http"
"net/http/httptest"
"os"
"testing"
"github.com/efficientgo/core/testutil"
"github.com/go-kit/log"
)
func TestBucket_Get_ShouldReturnErrorIfServerTruncateResponse(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Last-Modified", "Wed, 21 Oct 2015 07:28:00 GMT")
w.Header().Set("Content-Length", "100")
_, err := w.Write([]byte("12345"))
testutil.Ok(t, err)
}))
defer srv.Close()
os.Setenv("STORAGE_EMULATOR_HOST", srv.Listener.Addr().String())
cfg := Config{
Bucket: "test-bucket",
ServiceAccount: "",
}
bkt, err := NewBucketWithConfig(context.Background(), log.NewNopLogger(), cfg, "test")
testutil.Ok(t, err)
reader, err := bkt.Get(context.Background(), "test")
testutil.Ok(t, err)
_, err = io.ReadAll(reader)
testutil.Equals(t, io.ErrUnexpectedEOF, err)
}