Skip to content

Commit

Permalink
test: create delete scenarios
Browse files Browse the repository at this point in the history
Signed-off-by: Otavio Santana <otaviopolianasantana@gmail.com>
  • Loading branch information
otaviojava committed Dec 28, 2023
1 parent c1c9bd5 commit 9a3901e
Showing 1 changed file with 115 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import java.lang.reflect.Method;
import java.util.List;

import static org.eclipse.jnosql.mapping.core.query.AnnotationOperation.DELETE;
import static org.eclipse.jnosql.mapping.core.query.AnnotationOperation.INSERT;
import static org.eclipse.jnosql.mapping.core.query.AnnotationOperation.UPDATE;
import static org.junit.jupiter.api.Assertions.*;
Expand Down Expand Up @@ -203,6 +204,120 @@ void shouldUpdateArrayParameterVoid() throws Throwable {
Assertions.assertThat(invoked).isEqualTo(Void.TYPE);
}

// delete

@Test
void shouldDeleteSingleParameter() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("same", Person.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{person}, repository));
Mockito.verify(repository).delete(person);
Assertions.assertThat(invoked).isNull();
}

@Test
void shouldDeleteSingleParameterBoolean() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("sameBoolean", Person.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{person}, repository));
Mockito.verify(repository).delete(person);
Assertions.assertThat(invoked).isEqualTo(true);
}

@Test
void shouldDeleteSingleParameterVoid() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("sameVoid", Person.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{person}, repository));
Mockito.verify(repository).delete(person);
Assertions.assertThat(invoked).isEqualTo(Void.TYPE);
}

@Test
void shouldDeleteSingleParameterInt() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("sameInt", Person.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{person}, repository));
Mockito.verify(repository).delete(person);
Assertions.assertThat(invoked).isEqualTo(1);
}

@Test
void shouldDeleteIterableParameter() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("iterable", List.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{List.of(person)}, repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isNull();
}

@Test
void shouldDeleteIterableParameterVoid() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("iterableVoid", List.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{List.of(person)}, repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isEqualTo(Void.TYPE);
}

@Test
void shouldDeleteIterableParameterInt() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("iterableInt", List.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{List.of(person)}, repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isEqualTo(1);
}

@Test
void shouldDeleteIterableParameterBoolean() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("iterableBoolean", List.class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{List.of(person)}, repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isEqualTo(true);
}

@Test
void shouldDeleteArrayParameter() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("array", Person[].class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{new Person[]{person}},
repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isNull();
}

@Test
void shouldDeleteArrayParameterBoolean() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("arrayBoolean", Person[].class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{new Person[]{person}},
repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isEqualTo(true);
}

@Test
void shouldDeleteArrayParameterInt() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("arrayInt", Person[].class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{new Person[]{person}},
repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isEqualTo(1);
}

@Test
void shouldDeleteArrayParameterVoid() throws Throwable {
Method method = PersonRepository.class.getDeclaredMethod("arrayVoid", Person[].class);
Person person = Person.builder().build();
Object invoked = DELETE.invoke(new AnnotationOperation.Operation(method, new Object[]{new Person[]{person}},
repository));
Mockito.verify(repository).deleteAll(List.of(person));
Assertions.assertThat(invoked).isEqualTo(Void.TYPE);
}


interface PersonRepository extends DataRepository<Person, Long>{

Expand Down

0 comments on commit 9a3901e

Please sign in to comment.