jabrena / exceptions-in-java

Apache License 2.0
0 stars 0 forks source link

Review Either tests #26

Closed jabrena closed 1 month ago

jabrena commented 1 month ago
jabrena commented 1 month ago
jabrena commented 1 month ago
jabrena commented 1 month ago
    public Either<List<GameItem>, Integer> claimAvatarRewards(int eventId) {
        if (this.rewardEvents.isEmpty()) {
            return Either.right(Retcode.RET_FAIL_VALUE);
        }

        var event = this.rewardEvents.remove(0);
        if (event.getEventId() != eventId) {
            return Either.right(Retcode.RET_FAIL_VALUE);
        }

        if (!this.homeOwner.getHome().onClaimAvatarRewards(eventId)) {
            return Either.right(Retcode.RET_FAIL_VALUE);
        }

        return Either.left(event.giveRewards());
    }
jabrena commented 1 month ago
jabrena commented 1 month ago
jabrena commented 1 month ago
jabrena commented 1 month ago
  public Either<IOException, TaskResponse> getTaskResponse(final String taskId) {
    try {
      final var request = new Request(HttpGet.METHOD_NAME, "/" + TASKS_ENDPOINT + "/" + taskId);
      final var response = esClient.getLowLevelClient().performRequest(request);
      final var taskResponse =
          objectMapper.readValue(response.getEntity().getContent(), TaskResponse.class);
      return Either.right(taskResponse);
    } catch (IOException e) {
      return Either.left(e);
    }
  }

  private Either<Throwable, Long> handleReindexResponse(
      final ReindexResponse response,
      final Throwable error,
      final String sourceIndexName,
      final String operation) {
    if (error != null) {
      final var message =
          String.format(
              "Exception occurred, while performing operation %s on source index %s. the documents: %s",
              operation, sourceIndexName, error.getMessage());
      return Either.left(new TasklistRuntimeException(message, error));
    }

    final var bulkFailures = response.failures();
    if (bulkFailures.size() > 0) {
      LOGGER.error(
          "Failures occurred when performing operation: {} on source index {}. See details below.",
          operation,
          sourceIndexName);
      bulkFailures.stream().forEach(f -> LOGGER.error(f.toString()));
      return Either.left(new ArchiverException(String.format("Operation % failed", operation)));
    }

    LOGGER.debug(
        "Operation {} succeded on source index {}. Response: {}",
        operation,
        sourceIndexName,
        response.toString());
    return Either.right(response.total());
  }
jabrena commented 1 month ago

A potential PR:

public DQRuleset parse(String dqdl) throws InvalidDataQualityRulesetException {
        CharStream input = CharStreams.fromString(dqdl);
        DQDLErrorListener errorListener = new DQDLErrorListener();

        DataQualityDefinitionLanguageLexer lexer = new DataQualityDefinitionLanguageLexer(input);
        lexer.removeErrorListeners();
        lexer.addErrorListener(errorListener);
        TokenStream tokens = new CommonTokenStream(lexer);

        DataQualityDefinitionLanguageParser parser = new DataQualityDefinitionLanguageParser(tokens);
        parser.removeErrorListeners();
        parser.addErrorListener(errorListener);

        DQDLParserListener listener = new DQDLParserListener(errorListener);
        ParseTreeWalker.DEFAULT.walk(listener, parser.document());

        Either<List<String>, DQRuleset> dqRulesetEither = listener.getParsedRuleset();

        if (dqRulesetEither.isLeft()) {
            throw new InvalidDataQualityRulesetException(generateExceptionMessage(dqRulesetEither.getLeft()));
        } else {
            return dqRulesetEither.getRight();
        }
    }

    public Either<List<String>, DQRuleset> getParsedRuleset() {
        if (errorMessages.isEmpty() && errorListener.getErrorMessages().isEmpty()) {
            return Either.fromRight(new DQRuleset(metadata, primarySource, additionalSources, dqRules));
        } else {
            List<String> allErrorMessages = new ArrayList<>();
            allErrorMessages.addAll(errorMessages);
            allErrorMessages.addAll(errorListener.getErrorMessages());

            return Either.fromLeft(allErrorMessages);
        }
    }
jabrena commented 1 month ago