@Test public void insert() { FileSourceDto expected = new FileSourceDto() .setProjectUuid("PRJ_UUID") .setFileUuid("FILE2_UUID") .setBinaryData("FILE2_BINARY_DATA".getBytes()) .setDataHash("FILE2_DATA_HASH") .setLineHashes(of("LINE1_HASH", "LINE2_HASH")) .setSrcHash("FILE2_HASH") .setCreatedAt(1500000000000L) .setUpdatedAt(1500000000001L) .setLineHashesVersion(1) .setRevision("123456789"); underTest.insert(dbSession, expected); dbSession.commit(); FileSourceDto fileSourceDto = underTest.selectByFileUuid(dbSession, expected.getFileUuid()); assertThat(fileSourceDto.getProjectUuid()).isEqualTo(expected.getProjectUuid()); assertThat(fileSourceDto.getFileUuid()).isEqualTo(expected.getFileUuid()); assertThat(fileSourceDto.getBinaryData()).isEqualTo(expected.getBinaryData()); assertThat(fileSourceDto.getDataHash()).isEqualTo(expected.getDataHash()); assertThat(fileSourceDto.getRawLineHashes()).isEqualTo(expected.getRawLineHashes()); assertThat(fileSourceDto.getLineHashes()).isEqualTo(expected.getLineHashes()); assertThat(fileSourceDto.getLineCount()).isEqualTo(expected.getLineCount()); assertThat(fileSourceDto.getSrcHash()).isEqualTo(expected.getSrcHash()); assertThat(fileSourceDto.getCreatedAt()).isEqualTo(expected.getCreatedAt()); assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(expected.getUpdatedAt()); assertThat(fileSourceDto.getRevision()).isEqualTo(expected.getRevision()); }
@Test public void selectLineHashesVersion_succeeds() { underTest.insert(dbSession, new FileSourceDto() .setProjectUuid("PRJ_UUID") .setFileUuid("FILE2_UUID") .setBinaryData("FILE2_BINARY_DATA".getBytes()) .setDataHash("FILE2_DATA_HASH") .setLineHashes(singletonList("hashes")) .setSrcHash("FILE2_HASH") .setCreatedAt(1500000000000L) .setUpdatedAt(1500000000001L) .setLineHashesVersion(1) .setRevision("123456789")); dbSession.commit(); assertThat(underTest.selectLineHashesVersion(dbSession, "FILE2_UUID")).isEqualTo(LineHashVersion.WITH_SIGNIFICANT_CODE); }
@Test public void update() { dbTester.prepareDbUnit(getClass(), "shared.xml"); underTest.update(dbSession, new FileSourceDto() .setId(101L) .setProjectUuid("PRJ_UUID") .setFileUuid("FILE1_UUID") .setBinaryData("updated data".getBytes()) .setDataHash("NEW_DATA_HASH") .setSrcHash("NEW_FILE_HASH") .setLineHashes(singletonList("NEW_LINE_HASHES")) .setUpdatedAt(1500000000002L) .setLineHashesVersion(1) .setRevision("987654321")); dbSession.commit(); dbTester.assertDbUnitTable(getClass(), "update-result.xml", "file_sources", "project_uuid", "file_uuid", "data_hash", "line_hashes", "src_hash", "created_at", "updated_at", "revision", "line_hashes_version"); }
@Test public void should_cache_line_hash_version_from_db() { ComponentDto project = db.components().insertPublicProject(); ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(project)); db.fileSources().insertFileSource(file, dto -> dto.setLineHashesVersion(LineHashVersion.WITH_SIGNIFICANT_CODE.getDbValue())); Component component = ReportComponent.builder(Component.Type.FILE, 1).setKey("key").setUuid(file.uuid()).build(); assertThat(underTest.hasLineHashesWithSignificantCode(component)).isTrue(); assertThat(db.countRowsOfTable("file_sources")).isOne(); db.executeUpdateSql("delete from file_sources"); db.commit(); assertThat(db.countRowsOfTable("file_sources")).isZero(); // still true because it uses cache assertThat(underTest.hasLineHashesWithSignificantCode(component)).isTrue(); } }
@Test public void hasLineHashWithSignificantCode_should_return_true() { ComponentDto project = db.components().insertPublicProject(); ComponentDto file = db.components().insertComponent(ComponentTesting.newFileDto(project)); db.fileSources().insertFileSource(file, dto -> dto.setLineHashesVersion(LineHashVersion.WITH_SIGNIFICANT_CODE.getDbValue())); Component component = ReportComponent.builder(Component.Type.FILE, 1).setKey("key").setUuid(file.uuid()).build(); assertThat(underTest.hasLineHashesWithSignificantCode(component)).isTrue(); }
.setDataHash(dataHash) .setLineHashes(lineHashes) .setLineHashesVersion(lineHashesVersion) .setCreatedAt(system2.now()) .setUpdatedAt(system2.now()) .setSrcHash(srcHash) .setLineHashes(lineHashes) .setLineHashesVersion(lineHashesVersion) .setRevision(revision) .setUpdatedAt(system2.now());
.setDataHash(dataHash) .setLineHashes(lineHashes) .setLineHashesVersion(lineHashesVersion) .setCreatedAt(system2.now()) .setUpdatedAt(system2.now()) .setSrcHash(srcHash) .setLineHashes(lineHashes) .setLineHashesVersion(lineHashesVersion) .setRevision(revision) .setUpdatedAt(system2.now());