Невозможно сохранить данные в базе данных Монго при создании Junits. Заранее спасибо - PullRequest
0 голосов
/ 02 января 2019

Проблема

Я создал Junit для API тестирования, но я не могу сохранить данные в базе данных с помощью JUnit.

Может любой опытный человекподскажите, как решить эту проблему?

Решение

Я создал API-интерфейс put в Notes Controller и добавил JUnit для проверки того же самого.

Я также добавил NoteManager для бизнес-уровня и NoteDal для слоя DAO, а также использовал MongoTemplate для сохранения записей в коллекции базы данных mongo NoteInfo.

Ниже приведен код длятот же

@RunWith(SpringJUnit4ClassRunner.class)
public class NoteControllerTest {
private MockMvc mockMvc;
@InjectMocks
private NoteController noteController;
@Mock
private NoteManager noteManager;
@Mock
private RequestValidator requestValidator;
@Mock
private MessageSource messageSource;

private static final String DEFAULT_TITLE = "AAAAAAAAAA";
private static final String UPDATED_TITLE = "BBBBBBBBBB";

private static final String DEFAULT_CONTENT = "AAAAAAAAAA";
private static final String UPDATED_CONTENT = "BBBBBBBBBB";

private static final String DEFAULT_ASSOSCIATED_RESOURCE_ID = "AAAAAAAAAA";
private static final String UPDATED_ASSOSCIATED_RESOURCE_ID = "BBBBBBBBBB";

private static final ResourceType DEFAULT_ASSOSCIATED_RESOURCE = ResourceType.Fleet;
private static final ResourceType UPDATED_ASSOSCIATED_RESOURCE = ResourceType.Policy;

@Before
public void setUp() throws Exception {
    MockitoAnnotations.initMocks(this);
    noteController = new NoteController(noteManager, requestValidator, messageSource);
    mockMvc = MockMvcBuilders.standaloneSetup(noteController).build();
}

private NoteInfo notes;

@Before
public void initTest() {
    notes = createEntity();
}

/**
 * Create an entity for this test.
 * <p>
 * This is a static method, as tests for other entities might also need it,
 * if they test an entity which requires the current entity.
 */
public static NoteInfo createEntity() {
    NoteInfo notes = new NoteInfo();
    notes.setNoteTitle(DEFAULT_TITLE);
    notes.setNoteContent(DEFAULT_CONTENT);
    notes.setAttachedEntityId(DEFAULT_ASSOSCIATED_RESOURCE_ID);
    notes.setAttachedEntity(DEFAULT_ASSOSCIATED_RESOURCE);
    return notes;
}



@Test
public void updateNotes() throws Exception {
    noteManager.addNote(notes, "123", "154");
    int databaseSizeBeforeUpdate = noteManager.getAllNotes(new PageRequest(0, 200, SortOrder.DESC, "noteId"), "", "").size();
    System.out.println(databaseSizeBeforeUpdate);//I am getting size as zero.
}

NoteManagerImpl

@Service
public class NoteManagerImpl implements NoteManager {

@Override
public NoteInfo addNote(NoteInfo noteInfo, String requestId, String referenceId) {
    String methodName = "addNote";
    LOG.debug(METHOD_ENTER, methodName);
    ObjectId id = new ObjectId();
    noteInfo.setNoteId(id.toString());
    noteInfo.setCreatedOn(new Date());
    noteInfo.setLastUpdatedOn(new Date());
    noteInfo.setCreatedBy(referenceId);
    NoteInfo savedNote = noteDAL.addNote(noteInfo, requestId, referenceId);
    LOG.info("New Note added into the system: {}", noteInfo);
    LOG.debug(METHOD_EXIT, methodName);
    return savedNote;
}

NoteInfo

public class NoteInfo implements Serializable {
private static final long serialVersionUID = -5033417120019509685L;

@Id
private String noteId;
private String noteTitle;
private List<String> tags;
private String noteContent;
private String createdBy;
private ResourceType attachedEntity;
private String attachedEntityId;
@JsonFormat(pattern = DATE_JSON_FORMAT)
@DateTimeFormat(iso = ISO.DATE_TIME)
private Date createdOn;
@JsonFormat(pattern = DATE_JSON_FORMAT)
@DateTimeFormat(iso = ISO.DATE_TIME)
private Date lastUpdatedOn;
...