Skip to content

Commit b3dc734

Browse files
author
Ajay Kannan
committed
Check for null in Project.load
1 parent 645f381 commit b3dc734

File tree

2 files changed

+18
-3
lines changed
  • gcloud-java-resourcemanager/src

2 files changed

+18
-3
lines changed

gcloud-java-resourcemanager/src/main/java/com/google/gcloud/resourcemanager/Project.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,13 @@ public Project(ResourceManager resourceManager, ProjectInfo projectInfo) {
4242
/**
4343
* Constructs a Project object that contains project information loaded from the server.
4444
*
45-
* @return Project object containing the project's metadata
45+
* @return Project object containing the project's metadata or
46+
* null if the project doesn't exist
4647
* @throws ResourceManagerException upon failure
4748
*/
4849
public static Project load(ResourceManager resourceManager, String projectId) {
4950
ProjectInfo projectInfo = resourceManager.get(projectId);
50-
return new Project(resourceManager, projectInfo);
51+
return projectInfo != null ? new Project(resourceManager, projectInfo) : null;
5152
}
5253

5354
/**
@@ -67,7 +68,8 @@ public ResourceManager resourceManager() {
6768
/**
6869
* Returns a Project object with updated project information.
6970
*
70-
* @return Project object containing the project's updated metadata
71+
* @return Project object containing the project's updated metadata or null if the project no
72+
* longer exists
7173
* @throws ResourceManagerException upon failure
7274
*/
7375
public Project reload() {

gcloud-java-resourcemanager/src/test/java/com/google/gcloud/resourcemanager/ProjectTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import static org.easymock.EasyMock.replay;
2222
import static org.easymock.EasyMock.verify;
2323
import static org.junit.Assert.assertEquals;
24+
import static org.junit.Assert.assertNotNull;
25+
import static org.junit.Assert.assertNull;
2426
import static org.junit.Assert.assertSame;
2527

2628
import com.google.common.collect.ImmutableMap;
@@ -78,6 +80,17 @@ public void testReload() {
7880
assertEquals(newInfo, newProject.info());
7981
}
8082

83+
@Test
84+
public void testReloadDeletedProject() {
85+
expect(resourceManager.get(PROJECT_INFO.projectId())).andReturn(PROJECT_INFO);
86+
expect(resourceManager.get(PROJECT_INFO.projectId())).andReturn(null);
87+
replay(resourceManager);
88+
Project loadedProject = Project.load(resourceManager, PROJECT_INFO.projectId());
89+
assertNotNull(loadedProject);
90+
Project reloadedProject = loadedProject.reload();
91+
assertNull(reloadedProject);
92+
}
93+
8194
@Test
8295
public void testInfo() {
8396
replay(resourceManager);

0 commit comments

Comments
 (0)