Skip to content

Commit

Permalink
DEV-7963: add bypassGovernance param to deleteFileVersion (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
ericjding authored Mar 31, 2021
1 parent e887a33 commit a3c5029
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,16 @@ public class B2DeleteFileVersionRequest {
@B2Json.required
private final String fileId;

@B2Json.constructor(params = "fileName,fileId")
@B2Json.optional
private final boolean bypassGovernance;

@B2Json.constructor(params = "fileName,fileId,bypassGovernance")
public B2DeleteFileVersionRequest(String fileName,
String fileId) {
String fileId,
boolean bypassGovernance) {
this.fileName = fileName;
this.fileId = fileId;
this.bypassGovernance = bypassGovernance;
}

public String getFileName() {
Expand All @@ -29,18 +34,23 @@ public String getFileId() {
return fileId;
}

public boolean isBypassGovernance() {
return bypassGovernance;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
B2DeleteFileVersionRequest that = (B2DeleteFileVersionRequest) o;
return Objects.equals(getFileName(), that.getFileName()) &&
Objects.equals(getFileId(), that.getFileId());
Objects.equals(getFileId(), that.getFileId()) &&
isBypassGovernance() == that.isBypassGovernance();
}

@Override
public int hashCode() {
return Objects.hash(getFileName(), getFileId());
return Objects.hash(getFileName(), getFileId(), isBypassGovernance());
}

public static Builder builder(String fileName,
Expand All @@ -52,14 +62,21 @@ public static class Builder {
private final String fileName;
private final String fileId;

private boolean bypassGovernance;

public Builder(String fileName,
String fileId) {
this.fileName = fileName;
this.fileId = fileId;
}

public Builder setBypassGovernance(boolean bypassGovernance) {
this.bypassGovernance = bypassGovernance;
return this;
}

public B2DeleteFileVersionRequest build() {
return new B2DeleteFileVersionRequest(fileName, fileId);
return new B2DeleteFileVersionRequest(fileName, fileId, bypassGovernance);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -904,6 +904,7 @@ public void testDeleteFileVersion() throws B2Exception {
" X-Bz-Test-Mode: force_cap_exceeded\n" +
"request:\n" +
" {\n" +
" \"bypassGovernance\": false,\n" +
" \"fileId\": \"4_zBlah_0000001\",\n" +
" \"fileName\": \"files/\u81ea\u7531/0001\"\n" +
" }\n" +
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
* Copyright 2021, Backblaze Inc. All Rights Reserved.
* License https://www.backblaze.com/using_b2_code.html
*/
package com.backblaze.b2.client.structures;

import com.backblaze.b2.json.B2Json;
import com.backblaze.b2.util.B2BaseTest;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class B2DeleteFileVersionRequestTest extends B2BaseTest {

@Test
public void testNormal() {
final B2DeleteFileVersionRequest request =
B2DeleteFileVersionRequest.builder("fluffy.jpg", "4_zBlah_00000001").build();
final String requestJson = B2Json.toJsonOrThrowRuntime(request);

final String expectedJson = "{\n" +
" \"bypassGovernance\": false,\n" +
" \"fileId\": \"4_zBlah_00000001\",\n" +
" \"fileName\": \"fluffy.jpg\"\n" +
"}";

assertEquals(expectedJson, requestJson);
}

@Test
public void testWithBypassGovernanceTrue() {
final B2DeleteFileVersionRequest request = B2DeleteFileVersionRequest
.builder("fluffy.jpg", "4_zBlah_00000001")
.setBypassGovernance(true)
.build();
final String requestJson = B2Json.toJsonOrThrowRuntime(request);

final String expectedJson = "{\n" +
" \"bypassGovernance\": true,\n" +
" \"fileId\": \"4_zBlah_00000001\",\n" +
" \"fileName\": \"fluffy.jpg\"\n" +
"}";

assertEquals(expectedJson, requestJson);
}

@Test
public void testWithBypassGovernanceFalse() {
final B2DeleteFileVersionRequest request = B2DeleteFileVersionRequest
.builder("fluffy.jpg", "4_zBlah_00000001")
.setBypassGovernance(false)
.build();
final String requestJson = B2Json.toJsonOrThrowRuntime(request);

final String expectedJson = "{\n" +
" \"bypassGovernance\": false,\n" +
" \"fileId\": \"4_zBlah_00000001\",\n" +
" \"fileName\": \"fluffy.jpg\"\n" +
"}";

assertEquals(expectedJson, requestJson);
}
}

0 comments on commit a3c5029

Please sign in to comment.