public DescribeTableResult unmarshall(JsonUnmarshallerContext context) throws Exception { DescribeTableResult describeTableResult = new DescribeTableResult(); int originalDepth = context.getCurrentDepth(); String currentParentElement = context.getCurrentParentElement(); int targetDepth = originalDepth + 1; JsonToken token = context.getCurrentToken(); if (token == null) token = context.nextToken(); if (token == VALUE_NULL) { return describeTableResult; } while (true) { if (token == null) break; if (token == FIELD_NAME || token == START_OBJECT) { if (context.testExpression("Table", targetDepth)) { context.nextToken(); describeTableResult.setTable(TableDescriptionJsonUnmarshaller.getInstance().unmarshall(context)); } } else if (token == END_ARRAY || token == END_OBJECT) { if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) { if (context.getCurrentDepth() <= originalDepth) break; } } token = context.nextToken(); } return describeTableResult; }
public DescribeTableResult unmarshall(JsonUnmarshallerContext context) throws Exception { DescribeTableResult describeTableResult = new DescribeTableResult(); AwsJsonReader reader = context.getReader(); reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("Table")) { describeTableResult.setTable(TableDescriptionJsonUnmarshaller.getInstance() .unmarshall(context)); } else { reader.skipValue(); } } reader.endObject(); return describeTableResult; }
@Test public void get_whenTableAlreadyExists_doesNotCreateTable() { CreateDynamoDBTable createDynamoDBTable = new CreateDynamoDBTable(dynamoDB, "asdf", "asdf", 1, 1); //setup when(dynamoDB.describeTable("asdf")).thenReturn(new DescribeTableResult().withTable(new TableDescription())); //test createDynamoDBTable.get(); //verify verify(dynamoDB).describeTable("asdf"); verify(dynamoDB, Mockito.never()).createTable(any(CreateTableRequest.class)); }
@Test public void get_whenTableDoesNotExist_createsTable() { CreateDynamoDBTable createDynamoDBTable = new CreateDynamoDBTable(dynamoDB, "asdf", "asdf", 1, 1); //setup when(dynamoDB.describeTable("asdf")).thenThrow(new ResourceNotFoundException("asdf")); when(dynamoDB.createTable(any(CreateTableRequest.class))) .thenReturn(new CreateTableResult().withTableDescription(new TableDescription())); when(dynamoDB.describeTable(new DescribeTableRequest().withTableName("asdf"))) .thenReturn(new DescribeTableResult().withTable(new TableDescription().withTableStatus(TableStatus.ACTIVE))); //test createDynamoDBTable.get(); //verify verify(dynamoDB).describeTable("asdf"); verify(dynamoDB).createTable(any(CreateTableRequest.class)); } }
public DescribeTableResult unmarshall(JsonUnmarshallerContext context) throws Exception { DescribeTableResult describeTableResult = new DescribeTableResult(); int originalDepth = context.getCurrentDepth(); String currentParentElement = context.getCurrentParentElement(); int targetDepth = originalDepth + 1; JsonToken token = context.getCurrentToken(); if (token == null) token = context.nextToken(); if (token == VALUE_NULL) { return describeTableResult; } while (true) { if (token == null) break; if (token == FIELD_NAME || token == START_OBJECT) { if (context.testExpression("Table", targetDepth)) { context.nextToken(); describeTableResult.setTable(TableDescriptionJsonUnmarshaller.getInstance().unmarshall(context)); } } else if (token == END_ARRAY || token == END_OBJECT) { if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) { if (context.getCurrentDepth() <= originalDepth) break; } } token = context.nextToken(); } return describeTableResult; }