### Question:
NumberSetDynamoAttribute implements DynamoAttribute { @Override public <R, P> R accept(DynamoAttributeVisitor<R, P> visitor, P arg) { return visitor.visitNumberSet(this, arg); }  @Override DynamoAttributeType getAttributeType(); @Override R accept(DynamoAttributeVisitor<R, P> visitor, P arg);  }### Answer:
@Test void accept_noArg_invokesVisitNumberSetWithNull() { NumberSetDynamoAttribute classUnderTest = createInstance(); when(dynamoAttributeVisitorMock.visitNumberSet(classUnderTest, null)).thenReturn(VISITOR_RETURN); Object accept = classUnderTest.accept(dynamoAttributeVisitorMock); assertThat(accept).isEqualTo(VISITOR_RETURN); verify(dynamoAttributeVisitorMock).visitNumberSet(classUnderTest, null); verifyNoMoreInteractions(dynamoAttributeVisitorMock); }
@Test void accept_withArg_invokesVisitNumberSet() { NumberSetDynamoAttribute classUnderTest = createInstance(); when(dynamoAttributeVisitorMock.visitNumberSet(classUnderTest, VISITOR_ARG)).thenReturn(VISITOR_RETURN); Object accept = classUnderTest.accept(dynamoAttributeVisitorMock, VISITOR_ARG); assertThat(accept).isEqualTo(VISITOR_RETURN); verify(dynamoAttributeVisitorMock).visitNumberSet(classUnderTest, VISITOR_ARG); verifyNoMoreInteractions(dynamoAttributeVisitorMock); }