Skip to content

Commit

Permalink
#218 Fixed tests
Browse files Browse the repository at this point in the history
  • Loading branch information
loreV committed Jun 19, 2022
1 parent a29e2dc commit 6dd93d2
Show file tree
Hide file tree
Showing 10 changed files with 55 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

import static java.util.Collections.emptyList;
import static java.util.Collections.emptySet;
import static org.sc.controller.Constants.ONE;
import static org.sc.controller.Constants.ZERO;
import static org.sc.controller.admin.Constants.PREFIX_REPORT;

@RestController
Expand Down Expand Up @@ -43,12 +45,12 @@ public AccessibilityReportResponse create(
final Set<String> errors = generalValidator.validate(accReport);
if (!errors.isEmpty() || accReport.getId() != null) {
return accessibilityIssueResponseHelper.constructResponse(errors, emptyList(), reportService.count(),
org.sc.controller.Constants.ZERO, org.sc.controller.Constants.ONE);
ZERO, ONE);
}
return accessibilityIssueResponseHelper
.constructResponse(errors, reportService.create(accReport),
reportService.count(),
org.sc.controller.Constants.ZERO, org.sc.controller.Constants.ONE);
ZERO, ONE);
}

@Operation(summary = "Updates a report")
Expand All @@ -60,12 +62,12 @@ public AccessibilityReportResponse update(
final Set<String> updateError = generalValidator.validateReportAcc(accReport.getId());
if (!updateError.isEmpty() || !errors.isEmpty()) {
return accessibilityIssueResponseHelper.constructResponse(updateError, emptyList(), reportService.count(),
org.sc.controller.Constants.ZERO, org.sc.controller.Constants.ONE);
ZERO, ONE);
}
return accessibilityIssueResponseHelper
.constructResponse(updateError, reportService.update(accReport),
reportService.count(),
org.sc.controller.Constants.ZERO, org.sc.controller.Constants.ONE);
ZERO, ONE);
}

@Operation(summary = "Remove accessibility reports")
Expand All @@ -75,15 +77,15 @@ public AccessibilityReportResponse deleteAccessibilityNotificationReport(
final Set<String> errors = generalValidator.validateReportAcc(id);
if (!errors.isEmpty()) {
return accessibilityIssueResponseHelper.constructResponse(errors, emptyList(), reportService.count(),
org.sc.controller.Constants.ZERO, org.sc.controller.Constants.ONE);
ZERO, ONE);
}

final List<AccessibilityReportDto> isDeleted =
reportService.delete(id);
return accessibilityIssueResponseHelper
.constructResponse(emptySet(), isDeleted, reportService.count(),
org.sc.controller.Constants.ZERO,
org.sc.controller.Constants.ONE);
ZERO,
ONE);
}

@Operation(summary = "Upgrade a report")
Expand All @@ -93,15 +95,15 @@ public AccessibilityReportResponse upgradeReport(
final Set<String> errors = generalValidator.validateReportAcc(id);
if (!errors.isEmpty()) {
return accessibilityIssueResponseHelper.constructResponse(errors, emptyList(), reportService.count(),
org.sc.controller.Constants.ZERO, org.sc.controller.Constants.ONE);
ZERO, ONE);
}

final List<AccessibilityReportDto> upgraded =
reportService.upgrade(id);
return accessibilityIssueResponseHelper
.constructResponse(emptySet(), upgraded, reportService.count(),
org.sc.controller.Constants.ZERO,
org.sc.controller.Constants.ONE);
ZERO,
ONE);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import io.swagger.v3.oas.annotations.Operation;
import org.sc.common.rest.response.TrailRawResponse;
import org.sc.controller.response.TrailRawResponseHelper;
import org.sc.data.validator.GeneralValidator;
import org.sc.data.validator.auth.AuthRealmValidator;
import org.sc.manager.TrailRawManager;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -24,21 +25,21 @@ public class AdminTrailRawController {

private final TrailRawManager trailRawManager;
private final TrailRawResponseHelper trailRawResponseHelper;
private final AuthRealmValidator authRealmValidator;
private final GeneralValidator generalValidator;

@Autowired
public AdminTrailRawController(final TrailRawManager trailRawManager,
final TrailRawResponseHelper trailRawResponseHelper,
final AuthRealmValidator authRealmValidator) {
final GeneralValidator generalValidator) {
this.trailRawManager = trailRawManager;
this.trailRawResponseHelper = trailRawResponseHelper;
this.authRealmValidator = authRealmValidator;
this.generalValidator = generalValidator;
}

@Operation(summary = "Delete a single raw trail")
@DeleteMapping("/{id}")
public TrailRawResponse deleteById(final @PathVariable String id) {
final Set<String> errors = authRealmValidator.validate(id);
final Set<String> errors = generalValidator.validateDeleteRawTrail(id);
if(errors.isEmpty()) {
return trailRawResponseHelper
.constructResponse(Collections.emptySet(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public List<AccessibilityReport> getUnapgradedByRealm(final String realm, final
return toNotificationList(collection.find(
new Document(AccessibilityReport.RECORD_DETAILS + "." + RecordDetails.REALM, realm)
.append(AccessibilityReport.ISSUE_ID, "")
.append(AccessibilityReport.IS_VALID, true))
.append(AccessibilityReport.IS_VALID, false))
.sort(new Document(AccessibilityReport.REPORT_DATE, MongoUtils.ASCENDING_ORDER))
.skip(skip)
.limit(limit)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public List<TrailRaw> getById(final String id) {
}

public List<TrailRaw> deleteById(final String id) {
List<TrailRaw> byIdInMemory = getById(id);
final List<TrailRaw> byIdInMemory = getById(id);
collection.deleteOne(new Document(TrailRaw.ID, id));
LOGGER.info("delete TrailRaws with ID: {}", id);
return byIdInMemory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class AccessibilityReportValidator @Autowired constructor(
) : Validator<AccessibilityReportDto> {

companion object {
const val maxDistanceBound = 300
const val maxDistanceBound = 3000
const val emailNotValid = "Field 'mail' is not valid"
const val noParamSpecifiedError = "Empty field '%s'"
const val noTrailError = "Trail with id '%s', does not exist"
Expand Down Expand Up @@ -91,8 +91,4 @@ class AccessibilityReportValidator @Autowired constructor(
trailCoords: List<TrailCoordinatesDto>) =
trailCoords.minOf { DistanceProcessor.distanceBetweenPoints(targetCoords, it) }

private fun getClosesCoord(targetCoords: CoordinatesDto,
trailCoords: List<TrailCoordinatesDto>) =
trailCoords.minByOrNull { DistanceProcessor.distanceBetweenPoints(targetCoords, it) }

}
14 changes: 10 additions & 4 deletions backend/src/main/java/org/sc/processor/PlacesTrailSyncProcessor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import org.sc.manager.TrailManager
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import java.lang.IllegalStateException

@Component
class PlacesTrailSyncProcessor @Autowired constructor(private val trailManager: TrailManager,
Expand All @@ -31,14 +30,21 @@ class PlacesTrailSyncProcessor @Autowired constructor(private val trailManager:
}

if(it.isDynamicCrossway) {
updateCrosswayNameWithTrailsPassingCodes(it.placeId)
updateDynamicCrosswayNameWithTrailsPassingCodes(it.placeId)
}
}
}

fun updateCrosswayNameWithTrailsPassingCodes(placeId: String) {
fun updateDynamicCrosswayNameWithTrailsPassingCodes(placeId: String) {
val placeList = placeManager.getById(placeId)
if(placeList.isEmpty()) throw IllegalStateException("Cannot update place name of a not-existing location")
if (placeList.isEmpty()) {
logger.warn("Cannot update place name of a not-existing location (id=${placeId})")
return
}
if (placeList.any { !it.isDynamic }) {
logger.warn("Cannot update no-auto place (id=${placeId})")
return
}
val place = placeList.first()
val placeCrossingTrailsNames =
trailManager.getCodesByTrailIds(place.crossingTrailIds).joinToString(", ")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ class AccessibilityReportService @Autowired constructor(
}
val createdReport = createdNotification.first()
reportDto.issueId = createdReport.id
reportDto.valid = true
resourceManager.addEntry(
createdReport.trailId, RegenerationEntryType.ACCESSIBILITY_ISSUE,
createdReport.id, authHelper.username, RegenerationActionType.CREATE)
Expand Down
18 changes: 14 additions & 4 deletions backend/src/main/java/org/sc/service/TrailService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package org.sc.service
import org.sc.common.rest.PlaceRefDto
import org.sc.common.rest.TrailDto
import org.sc.data.mapper.TrailMapper
import org.sc.data.model.Trail
import org.sc.data.model.TrailStatus
import org.sc.manager.*
import org.sc.processor.PlacesTrailSyncProcessor
Expand All @@ -30,6 +29,7 @@ class TrailService @Autowired constructor(private val trailManager: TrailManager
maintenanceManager.deleteByTrailId(id)
accessibilityNotificationManager.deleteByTrailId(id)
placeManager.deleteTrailReference(deletedTrail.id, deletedTrail.locations)
updateDynamicCrosswayNamesForTrail(deletedTrail)
poiManager.deleteTrailReference(deletedTrail.id)
logger.info("Purge deleting trail $id")
return deletedTrails
Expand All @@ -55,19 +55,29 @@ class TrailService @Autowired constructor(private val trailManager: TrailManager
placesTrailSyncProcessor.populatePlacesWithTrailData(trailDto)
}
trailToUpdate.status = trailDto.status
updateDynamicCrosswayNamesForTrail(trailToUpdate)
return trailManager.update(trailMapper.map(trailToUpdate))
}

fun unlinkPlace(trailId: String,
placeRef: PlaceRefDto): List<TrailDto> {
val unLinkPlace = trailManager.unlinkPlace(trailId, placeRef)
if (placeRef.isDynamicCrossway)
placesTrailSyncProcessor.updateCrosswayNameWithTrailsPassingCodes(placeRef.placeId)
placesTrailSyncProcessor.updateDynamicCrosswayNameWithTrailsPassingCodes(placeRef.placeId)
return unLinkPlace
}

fun linkTrailToPlace(id: String, placeRefDto: PlaceRefDto): List<TrailDto> {
TODO("Not yet implemented")
fun linkTrailToPlace(id: String, placeRef: PlaceRefDto): List<TrailDto> {
val linkedPlaces = trailManager.linkTrailToPlace(id, placeRef)
if (placeRef.isDynamicCrossway)
placesTrailSyncProcessor.updateDynamicCrosswayNameWithTrailsPassingCodes(placeRef.placeId)
return linkedPlaces
}

private fun updateDynamicCrosswayNamesForTrail(trailToUpdate: TrailDto) {
trailToUpdate.locations.forEach {
if (it.isDynamicCrossway) placesTrailSyncProcessor.updateDynamicCrosswayNameWithTrailsPassingCodes(it.placeId)
}
}

private fun isSwitchingToDraft(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

import static org.assertj.core.api.Assertions.assertThat;
import static org.sc.integration.ImportTrailIT.INTERMEDIATE_COORDINATES_DTO;
import static org.sc.integration.TrailImportRestIntegrationTest.INTERMEDIATE_EXPECTED_COORDINATE;

@RunWith(SpringRunner.class)
@SpringBootTest
Expand Down Expand Up @@ -74,7 +75,7 @@ public void setup() {
trailResponse = trailController.importTrail(trailImportDto);
trailId = trailResponse.getContent().get(0).getId();
reportDate = new Date();
anyTrailCoord = new CoordinatesDto(INTERMEDIATE_COORDINATES_DTO.getLatitude(), INTERMEDIATE_COORDINATES_DTO.getLongitude(), INTERMEDIATE_COORDINATES_DTO.getAltitude());
anyTrailCoord = new CoordinatesDto(INTERMEDIATE_EXPECTED_COORDINATE.getLatitude(), INTERMEDIATE_EXPECTED_COORDINATE.getLongitude(), INTERMEDIATE_EXPECTED_COORDINATE.getAltitude());
createResponse = accessibilityReportController.create(new AccessibilityReportDto(null, ANY_DESCRIPTION, trailId, ANY_TARGET_EMAIL, ANY_TEL, "", reportDate, false, anyTrailCoord, null));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sc.common.rest.PlaceDto;
import org.sc.common.rest.PlaceRefDto;
import org.sc.common.rest.Status;
import org.sc.common.rest.TrailImportDto;
import org.sc.common.rest.*;
import org.sc.common.rest.response.PlaceResponse;
import org.sc.common.rest.response.TrailResponse;
import org.sc.configuration.DataSource;
Expand All @@ -22,6 +19,7 @@
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Collections;
import java.util.stream.Collectors;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.sc.data.repository.MongoUtils.NO_FILTERING_TOKEN;
Expand Down Expand Up @@ -99,6 +97,12 @@ public void shouldRetrieveAndDeleteIt() {

assertThat(trailResponse.getContent().isEmpty()).isEqualTo(false);

final TrailDto trail = trailResponse.getContent().stream().findFirst().get();

// Remove refs first
adminTrailController.removePlaceFromTrail(trail.getId(),
trail.getLocations().stream().filter(it-> it.getPlaceId().equals(placeId)).collect(Collectors.toList()).stream().findFirst().get());

adminPlaceController.delete(placeId);

// Removed from place collection
Expand Down

0 comments on commit 6dd93d2

Please sign in to comment.