@Test
public void testStoreUnusedValueWhenAbsent() throws BinaryStoreException, IOException {

    String valueToStore = "value-to-store";
    expect(s3Client.doesObjectExist(eq(BUCKET), isA(String.class))).andReturn(false);
    expect(s3Client.putObject(eq(BUCKET), isA(String.class),
            isA(InputStream.class), isA(ObjectMetadata.class)))
            .andReturn(null);
    Capture<GetObjectTaggingRequest> getTaggingRequestCapture = Capture.newInstance();
    GetObjectTaggingResult getTaggingResult = new GetObjectTaggingResult(new ArrayList<>());
    expect(s3Client.getObjectTagging(capture(getTaggingRequestCapture)))
            .andReturn(getTaggingResult);
    Capture<SetObjectTaggingRequest> setTaggingRequestCapture = Capture.newInstance();
    expect(s3Client.setObjectTagging(capture(setTaggingRequestCapture)))
            .andReturn(new SetObjectTaggingResult());
    replayAll();
    s3BinaryStore.storeValue(new StringInputStream(valueToStore), true);
    SetObjectTaggingRequest setTaggingRequest = setTaggingRequestCapture.getValue();
    assertUnusedTagInSetTaggingRequest(setTaggingRequest, String.valueOf(true));
}