• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FIWARE / contract-management / #67

27 Oct 2025 12:33PM UTC coverage: 1.686% (+0.04%) from 1.651%
#67

Pull #12

wistefan
wait for the policy
Pull Request #12: Support for central marketplace and policy creation

117 of 1238 new or added lines in 31 files covered. (9.45%)

5 existing lines in 2 files now uncovered.

587 of 34807 relevant lines covered (1.69%)

0.02 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/org/fiware/iam/tmforum/handlers/QuoteEventHandler.java
1
package org.fiware.iam.tmforum.handlers;
2

3
import com.fasterxml.jackson.databind.ObjectMapper;
4
import io.micronaut.context.annotation.Requires;
5
import io.micronaut.http.HttpResponse;
6
import jakarta.inject.Singleton;
7
import lombok.RequiredArgsConstructor;
8
import lombok.extern.slf4j.Slf4j;
9
import org.fiware.iam.configuration.GeneralProperties;
10
import org.fiware.iam.handlers.QuoteHandler;
11
import org.fiware.iam.tmforum.quote.model.QuoteCreateEventVO;
12
import org.fiware.iam.tmforum.quote.model.QuoteDeleteEventVO;
13
import org.fiware.iam.tmforum.quote.model.QuoteStateChangeEventVO;
14
import org.fiware.iam.tmforum.quote.model.QuoteVO;
15
import reactor.core.publisher.Mono;
16

17
import java.util.List;
18
import java.util.Map;
19

20
/**
21
 * Handle all incoming events in connection to Quote
22
 */
23
@Requires(condition = GeneralProperties.TmForumCondition.class)
24
@RequiredArgsConstructor
25
@Singleton
26
@Slf4j
×
27
public class QuoteEventHandler implements TMForumEventHandler {
28

29

30
    private static final String CREATE_EVENT = "QuoteCreateEvent";
31
    private static final String DELETE_EVENT = "QuoteDeleteEvent";
32
    private static final String STATE_CHANGE_EVENT = "QuoteStateChangeEvent";
33
    private static final String ATTRIBUTE_CHANGE_EVENT = "QuoteAttributeValueChangeEvent";
34

NEW
35
    private static final List<String> SUPPORTED_EVENT_TYPES = List.of(CREATE_EVENT, DELETE_EVENT, STATE_CHANGE_EVENT, ATTRIBUTE_CHANGE_EVENT);
×
36

37
    private final ObjectMapper objectMapper;
38

39
    private final List<QuoteHandler> quoteHandlers;
40

41

42
    @Override
43
    public boolean isEventTypeSupported(String eventType) {
NEW
44
        return SUPPORTED_EVENT_TYPES.contains(eventType);
×
45
    }
46

47
    @Override
48
    public Mono<HttpResponse<?>> handleEvent(String eventType, Map<String, Object> event) {
NEW
49
        return switch (eventType) {
×
NEW
50
            case CREATE_EVENT -> handleQuoteCreation(event);
×
NEW
51
            case STATE_CHANGE_EVENT, ATTRIBUTE_CHANGE_EVENT -> handleQuoteStateChange(event);
×
NEW
52
            case DELETE_EVENT -> handleQuoteDeletion(event);
×
NEW
53
            default -> throw new IllegalArgumentException("Event type %s is not supported.".formatted(eventType));
×
54
        };
55
    }
56

57
    private Mono<HttpResponse<?>> handleQuoteCreation(Map<String, Object> event) {
NEW
58
        QuoteCreateEventVO quoteCreateEventVO = objectMapper.convertValue(event, QuoteCreateEventVO.class);
×
NEW
59
        QuoteVO quoteVO = quoteCreateEventVO.getEvent()
×
NEW
60
                .getQuote();
×
61

NEW
62
        List<Mono<HttpResponse<?>>> responses = quoteHandlers.stream()
×
NEW
63
                .map(handler -> handler.handleQuoteCreation(quoteVO))
×
NEW
64
                .toList();
×
65

NEW
66
        return zipToResponse(responses);
×
67
    }
68

69

70
    private Mono<HttpResponse<?>> handleQuoteStateChange(Map<String, Object> event) {
NEW
71
        QuoteStateChangeEventVO quoteStateChangeEventVO = objectMapper.convertValue(event, QuoteStateChangeEventVO.class);
×
NEW
72
        QuoteVO quoteVO = quoteStateChangeEventVO.getEvent()
×
NEW
73
                .getQuote();
×
74

NEW
75
        List<Mono<HttpResponse<?>>> responses = quoteHandlers.stream()
×
NEW
76
                .map(handler -> handler
×
NEW
77
                        .handleQuoteStateChange(quoteVO)
×
NEW
78
                        .doOnNext(r -> log.debug("Handler {} responded {}", handler.getClass().getName(), r)))
×
NEW
79
                .toList();
×
80

NEW
81
        return zipToResponse(responses);
×
82
    }
83

84
    private Mono<HttpResponse<?>> handleQuoteDeletion(Map<String, Object> event) {
NEW
85
        QuoteDeleteEventVO quoteDeleteEventVO = objectMapper.convertValue(event, QuoteDeleteEventVO.class);
×
NEW
86
        QuoteVO quoteVO = quoteDeleteEventVO.getEvent()
×
NEW
87
                .getQuote();
×
88

NEW
89
        List<Mono<HttpResponse<?>>> responses = quoteHandlers.stream()
×
NEW
90
                .map(handler -> handler.handleQuoteDeletion(quoteVO))
×
NEW
91
                .toList();
×
92

NEW
93
        return zipToResponse(responses);
×
94
    }
95

96
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc