uploader: test replication
diff --git a/client/client.go b/client/client.go
index 7a98d79..a578dea 100644
--- a/client/client.go
+++ b/client/client.go
@@ -16,7 +16,7 @@
 	return &FileUploader{client}
 }
 
-func (fu *FileUploader) Upload(f *os.File) {
+func (fu *FileUploader) Upload(f *os.File, numReplicas int) {
 	info, err := f.Stat()
 	if err != nil {
 		return
@@ -24,13 +24,13 @@
 	resp, err := fu.client.CreateBlob(
 		context.Background(), &api.CreateBlobRequest{
 			SizeBytes:   int32(info.Size()),
-			NumReplicas: 1})
-	if len(resp.Chunk) != 1 {
-		panic(resp)
-	}
+			NumReplicas: int32(numReplicas)})
 	if err != nil {
 		panic(err)
 	}
+	if len(resp.Chunk) != 1 {
+		panic(resp)
+	}
 	primaryListener := chunk.NewNonChangingPrimaryReplicaChangeListener(
 		resp.Chunk[0].ChunkId,
 		resp.Chunk[0].Server[0])
diff --git a/client/client_test.go b/client/client_test.go
index 21443d4..269f643 100644
--- a/client/client_test.go
+++ b/client/client_test.go
@@ -32,6 +32,31 @@
 	if err != nil {
 		t.Error(err)
 	}
-	uploader.Upload(f)
+	uploader.Upload(f, 1)
 
 }
+
+func TestUploadSmallFileWithReplication(t *testing.T) {
+	env, err := pt.NewInMemoryEnv(3)
+	if err != nil {
+		t.Error(err)
+	}
+	defer env.Stop()
+
+	var opts []grpc.DialOption
+	opts = append(opts, grpc.WithInsecure())
+	opts = append(opts, grpc.WithBlock())
+	conn, err := grpc.Dial("unix:///tmp/pcloud/master", opts...)
+	if err != nil {
+		t.Error(err)
+	}
+	defer conn.Close()
+	client := api.NewMetadataStorageClient(conn)
+
+	uploader := NewFileUploader(client)
+	f, err := os.Open("testdata/foo")
+	if err != nil {
+		t.Error(err)
+	}
+	uploader.Upload(f, 2)
+}