You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: blobstorewriter_test.go
    path of file: ./repos/cadence/common/reconciliation/store
    
    the code of the file until where you have to start completion: // The MIT License (MIT)
//
// Copyright (c) 2020 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, inc
    
func TestBlobstoreWriter(t *testing.T) {
	type testCase struct {
		name        string
		input       string
		input2      string
		expectedErr bool
	}

	testCases := []testCase{
		{
			name:        "Normal case",
			input:       "one",
			input2:      "two",
			expectedErr: false,
		},
	}

	for _, tc := range testCases {
		t.Run(tc.name, func(t *testing.T) {
			uuid := "test-uuid"
			extension := Extension("test")
			outputDir := t.TempDir()

			cfg := &config.FileBlobstore{
				OutputDirectory: outputDir,
			}
			// Reusing the FilestoreClient from the other sister test in the same package.
			blobstoreClient, err := filestore.NewFilestoreClient(cfg)
			require.NoError(t, err)

			blobstoreWriter := NewBlobstoreWriter(uuid, extension, blobstoreClient, 10).(*blobstoreWriter)
			// Add data to the writer
			err = blobstoreWriter.Add(tc.input)
			err = blobstoreWriter.Add(tc.input2)
			if tc.expectedErr {
				assert.Error(t, err)
				return
			}
			assert.NoError(t, err)

			// Flush the writer to write data to the blobstore
			err = blobstoreWriter.Flush()
			assert.NoError(t, err)

			// Retrieve the keys of flushed data
			flushedKeys := blobstoreWriter.FlushedKeys()
			if flushedKeys == nil {
				t.Fatal("Expected flushedKeys to be not nil")
			}

			// Read back the data from the blobstore
			key := pageNumberToKey(uuid, extension, flushedKeys.MinPage)
			req := &blobstore.GetRequest{Key: key}
			ctx := context.Background()
			resp, err := blobstoreClient.Get(ctx, req)
			assert.NoError(t, err)

			// Verify the contents
			assert.Equal(t, string(resp.Blob.Body), "\"one\"\r\n\"two\"\r\n")
		})
	}
}