package org.openlmis.core.model.repository; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.openlmis.core.LMISTestRunner; import org.openlmis.core.exceptions.LMISException; import org.openlmis.core.model.Program; import org.openlmis.core.model.RnRForm; import org.openlmis.core.model.RnRFormSignature; import org.openlmis.core.model.builder.RnRFormBuilder; import org.robolectric.RuntimeEnvironment; import java.util.List; import roboguice.RoboGuice; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; @RunWith(LMISTestRunner.class) public class RnrFormSignatureRepositoryTest { private RnrFormRepository rnrFormRepository; private RnrFormSignatureRepository signatureRepository; @Before public void setUp() throws Exception { rnrFormRepository = RoboGuice.getInjector(RuntimeEnvironment.application).getInstance(RnrFormRepository.class); signatureRepository = RoboGuice.getInjector(RuntimeEnvironment.application).getInstance(RnrFormSignatureRepository.class); } @Test public void shouldGetSignatureByRnrForm() throws LMISException { Program program = new Program(); RnRForm form = new RnRFormBuilder().setComments("Submitted Form") .setStatus(RnRForm.STATUS.SUBMITTED) .setProgram(program).build(); form.getSignaturesWrapper().add(new RnRFormSignature(form, "Submitter Signature", RnRFormSignature.TYPE.SUBMITTER)); form.getSignaturesWrapper().add(new RnRFormSignature(form, "Approver Signature", RnRFormSignature.TYPE.APPROVER)); rnrFormRepository.createAndRefresh(form); rnrFormRepository.createOrUpdateWithItems(form); List<RnRFormSignature> signatures = signatureRepository.queryByRnrFormId(form.getId()); assertThat(signatures.size(), is(2)); assertThat(signatures.get(0).getSignature(), is("Submitter Signature")); assertThat(signatures.get(1).getSignature(), is("Approver Signature")); } }