Azure / Azure/azure-documentdb-java

Remove final from DTO's to support Unit Testing

Aperta
#104 1 commento 1 reazione 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Java
Stelle
51
Fork
52
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

As a dev,
I want to write unit tests that mock the documentClient
so that I can unit test the behaviour of my classes.

Currently this is very hard thanks to the final classes returned by the documentClient.
i.e.

```
import com.microsoft.azure.documentdb.*;
import static org.assertj.core.api.Java6Assertions.assertThat;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;

...

private void givenAResponse(List response) {
DocumentClient documentClient = mock(DocumentClient.class);
FeedResponse feedResponse = mock(FeedResponse.class);
QueryIterable queryIterable = mock(QueryIterable.class);
when(documentClient.queryDocuments(
eq(CONNECTION_LINK),
any(String.class),
any(FeedOptions.class)))
.thenReturn(feedResponse);
when(feedResponse.getQueryIterable()).thenReturn(queryIterable);
when(queryIterable.toList()).thenReturn(response);
}
```

fails with:
```
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class com.microsoft.azure.documentdb.FeedResponse
Mockito cannot mock/spy following:
- final classes
```

Please can you remove 'final' from: FeedResponse and QueryIterable?

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.