Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
leexgh committed Aug 14, 2024
1 parent 0621f87 commit d527105
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;

@Service
public class MutationAssessorServiceImpl implements MutationAssessorService
Expand Down Expand Up @@ -96,28 +97,47 @@ public MutationAssessor getMutationAssessor(VariantAnnotation annotation)
* @param variant mutation assessor variant (ex: 7,140453136,A,T)
*/
public MutationAssessor getMutationAssessorByMutationAssessorVariant(String id, VariantAnnotation annotation)
throws MutationAssessorNotFoundException
throws MutationAssessorNotFoundException
{
MutationAssessor mutationAssessor = null;
mutationAssessor = mutationAssessorRepository.findById(id).orElse(null);
try {
return mutationAssessor;
} catch (NoSuchElementException e) {
throw new MutationAssessorNotFoundException(annotation.getVariant());
}
// MutationAssessor mutationAssessor = null;
// mutationAssessor = mutationAssessorRepository.findById(id).orElse(null);
// try {
// return mutationAssessor;
// } catch (NoSuchElementException e) {
// throw new MutationAssessorNotFoundException(annotation.getVariant());
// }
// try {
// mutationAssessor = mutationAssessorRepository.findById(id).get();
// } catch (NoSuchElementException e) {
// throw new MutationAssessorNotFoundException(annotation.getVariant());
// }
// return mutationAssessor;

return Optional.ofNullable(mutationAssessorRepository.findById(id)).get()
.orElseThrow(() -> new MutationAssessorNotFoundException(annotation.getVariant()));
}

public MutationAssessor getMutationAssessorByVariantAnnotation(VariantAnnotation annotation)
throws MutationAssessorNotFoundException
{
MutationAssessor mutationAssessorObj = this.getMutationAssessor(annotation);
// MutationAssessor mutationAssessor = this.getMutationAssessor(annotation);

if (mutationAssessorObj != null)
{
return mutationAssessorObj;
}
else {
throw new MutationAssessorNotFoundException(annotation.getVariant());
// if (mutationAssessor != null)
// {
// return mutationAssessor;
// }
// else {
// throw new MutationAssessorNotFoundException(annotation.getVariant());
// }


try {
// return Optional.ofNullable(this.getMutationAssessor(annotation))
// .orElseThrow(() -> new MutationAssessorNotFoundException(annotation.getVariant()));
return this.getMutationAssessor(annotation);
} catch (MutationAssessorNotFoundException e) {
// Possibly log or perform additional actions if needed
throw e;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.doReturn;

import java.io.IOException;
import java.util.Map;
import java.util.Optional;

import org.cbioportal.genome_nexus.component.annotation.ProteinChangeResolver;
import org.cbioportal.genome_nexus.model.MutationAssessor;
import org.cbioportal.genome_nexus.model.VariantAnnotation;
import org.cbioportal.genome_nexus.persistence.MutationAssessorRepository;
import org.cbioportal.genome_nexus.service.exception.ResourceMappingException;
import org.cbioportal.genome_nexus.service.EnsemblService;
import org.cbioportal.genome_nexus.service.exception.MutationAssessorNotFoundException;
import org.cbioportal.genome_nexus.service.mock.MutationAssessorMockData;
import org.cbioportal.genome_nexus.service.mock.VariantAnnotationMockData;
Expand All @@ -29,7 +29,10 @@ public class MutationAssessorServiceTest
@Spy
@InjectMocks
private MutationAssessorServiceImpl service;

@Mock
private ProteinChangeResolver proteinChangeResolver;
@Mock
private EnsemblService ensemblService;
@Mock
MutationAssessorRepository mutationAssessorRepository;

Expand All @@ -47,19 +50,23 @@ public void getMutationAssessorByMutationAssessorVariant()
Mockito.when(mutationAssessorRepository.findById("P01116,p.G12C")).thenReturn(Optional.of(mockData.get("P01116,p.G12C")));
Mockito.when(mutationAssessorRepository.findById("INVALID")).thenReturn(Optional.empty());

MutationAssessor mutationAssessor1 = service.getMutationAssessorByMutationAssessorVariant("P15056,p.V600E", null);
VariantAnnotation variantAnnotation1 = new VariantAnnotation();
variantAnnotation1.setVariant("7:g.140453136A>T");
MutationAssessor mutationAssessor1 = service.getMutationAssessorByMutationAssessorVariant("P15056,p.V600E", variantAnnotation1);
assertEquals(mutationAssessor1.getF_impact(), mockData.get("P15056,p.V600E").getF_impact());

MutationAssessor mutationAssessor2 = service.getMutationAssessorByMutationAssessorVariant("P01116,p.G12C", null);
VariantAnnotation variantAnnotation2 = new VariantAnnotation();
variantAnnotation2.setVariant("12:g.25398285C>A");
MutationAssessor mutationAssessor2 = service.getMutationAssessorByMutationAssessorVariant("P01116,p.G12C", variantAnnotation2);
assertEquals(mutationAssessor2.getF_impact(), mockData.get("P01116,p.G12C").getF_impact());

VariantAnnotation invalidVariantAnnotation = new VariantAnnotation();
invalidVariantAnnotation.setVariant("INVALID");

Exception exception = assertThrows(Exception.class, () -> {
MutationAssessorNotFoundException exception = assertThrows(MutationAssessorNotFoundException.class, () -> {
service.getMutationAssessorByMutationAssessorVariant("INVALID", invalidVariantAnnotation);
});
assertEquals("Mutation Assessor annotation not found for variant: INVALID", exception.getMessage());
assertEquals("Mutation Assessor not found for variant: INVALID", exception.getMessage());
}

@Test
Expand All @@ -71,12 +78,15 @@ public void getMutationAssessorByVariantAnnotation()
Map<String, VariantAnnotation> variantMockData = this.variantAnnotationMockData.generateData();

// mock methods in order to prevent hitting the live mutation assessor web API
doReturn(maMockData.get("P15056,p.V600E")).when(service).getMutationAssessorByMutationAssessorVariant("P15056,p.V600E", null);
doReturn(maMockData.get("P01116,p.G12C")).when(service).getMutationAssessorByMutationAssessorVariant("P01116,p.G12C", null);

Mockito.when(proteinChangeResolver.resolveHgvspShort(variantMockData.get("7:g.140453136A>T"))).thenReturn("p.V600E");
Mockito.when(ensemblService.getUniprotId("ENST00000288602")).thenReturn("P15056");
Mockito.when(mutationAssessorRepository.findById("P15056,p.V600E")).thenReturn(Optional.of(maMockData.get("P15056,p.V600E")));
MutationAssessor mutationAssessor1 = service.getMutationAssessor(variantMockData.get("7:g.140453136A>T"));
assertEquals(mutationAssessor1.getF_score(), maMockData.get("P15056,p.V600E").getF_score());

Mockito.when(proteinChangeResolver.resolveHgvspShort(variantMockData.get("12:g.25398285C>A"))).thenReturn("p.G12C");
Mockito.when(ensemblService.getUniprotId("ENST00000256078")).thenReturn("P01116");
Mockito.when(mutationAssessorRepository.findById("P01116,p.G12C")).thenReturn(Optional.of(maMockData.get("P01116,p.G12C")));
MutationAssessor mutationAssessor2 = service.getMutationAssessor(variantMockData.get("12:g.25398285C>A"));
assertEquals(mutationAssessor2.getF_score(), maMockData.get("P01116,p.G12C").getF_score());
}
Expand Down

0 comments on commit d527105

Please sign in to comment.