package com.constellio.app.modules.rm.services.borrowingServices; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import org.joda.time.LocalDateTime; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.data.utils.TimeProvider; import com.constellio.model.entities.records.wrappers.User; import com.constellio.sdk.tests.ConstellioTest; //TODO remove this class public class BorrowingTest extends ConstellioTest { @Mock User bob; BorrowingFactory factory; LocalDateTime nowDateTime = TimeProvider.getLocalDateTime(); @Before public void setUp() throws Exception { factory = spy(new BorrowingFactory()); when(bob.getId()).thenReturn("bobId"); when(bob.getUsername()).thenReturn("bob"); } @Test public void whenSetAttributeValueThenBecomeDirty() { Borrowing borrowing = new Borrowing(); assertThat(borrowing.isDirty()).isFalse(); borrowing = new Borrowing(); borrowing.setBorrowingType(BorrowingType.BORROW); assertThat(borrowing.isDirty()).isTrue(); borrowing = new Borrowing(); borrowing.setBorrower(bob); assertThat(borrowing.isDirty()).isTrue(); borrowing = new Borrowing(); borrowing.setBorrowDateTime(nowDateTime); assertThat(borrowing.isDirty()).isTrue(); borrowing = new Borrowing(); borrowing.setReturnDateTime(nowDateTime.plusDays(1)); assertThat(borrowing.isDirty()).isTrue(); borrowing = new Borrowing(); borrowing.setPreviewReturnDateTime(nowDateTime.plusDays(1)); assertThat(borrowing.isDirty()).isTrue(); } @Test public void whenConvertingStructureWithAllValuesThenRemainsEqual() throws Exception { Borrowing borrowing = new Borrowing(); borrowing.setBorrowingType(BorrowingType.BORROW); borrowing.setBorrower(bob); borrowing.setBorrowDateTime(nowDateTime); borrowing.setReturnDateTime(nowDateTime.plusDays(1)); borrowing.setPreviewReturnDateTime(nowDateTime.plusDays(1)); String stringValue = factory.toString(borrowing); Borrowing builtBorrowing = (Borrowing) factory.build(stringValue); String stringValue2 = factory.toString(builtBorrowing); assertThat(builtBorrowing).isEqualTo(borrowing); assertThat(stringValue2).isEqualTo(stringValue); assertThat(builtBorrowing.isDirty()).isFalse(); } @Test public void whenConvertingStructureWithNullValuesThenRemainsEqual() throws Exception { Borrowing borrowing = new Borrowing(); borrowing.setBorrowingType(null); borrowing.setBorrower(null); borrowing.setBorrowDateTime(null); borrowing.setReturnDateTime(null); borrowing.setPreviewReturnDateTime(null); String stringValue = factory.toString(borrowing); Borrowing builtBorrowing = (Borrowing) factory.build(stringValue); String stringValue2 = factory.toString(builtBorrowing); assertThat(builtBorrowing).isEqualTo(borrowing); assertThat(stringValue2).isEqualTo(stringValue); assertThat(builtBorrowing.isDirty()).isFalse(); } @Test public void whenConvertingStructureWithoutSetValuesThenRemainsEqual() throws Exception { Borrowing borrowing = new Borrowing(); String stringValue = factory.toString(borrowing); Borrowing builtBorrowing = (Borrowing) factory.build(stringValue); String stringValue2 = factory.toString(builtBorrowing); assertThat(builtBorrowing).isEqualTo(borrowing); assertThat(stringValue2).isEqualTo(stringValue); assertThat(builtBorrowing.isDirty()).isFalse(); } }