• 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/management/ContractManagementAdapter.java
1
package org.fiware.iam.management;
2

3
import io.micronaut.context.annotation.Requires;
4
import io.micronaut.http.HttpRequest;
5
import io.micronaut.http.HttpResponse;
6
import io.micronaut.http.MutableHttpRequest;
7
import io.micronaut.http.client.HttpClient;
8
import jakarta.inject.Singleton;
9
import lombok.RequiredArgsConstructor;
10
import lombok.extern.slf4j.Slf4j;
11
import org.fiware.iam.cm.model.OrderEventVO;
12
import org.fiware.iam.configuration.GeneralProperties;
13
import org.fiware.iam.domain.ContractManagement;
14
import org.fiware.iam.http.AuthHandler;
15
import org.fiware.iam.http.Oid4VpAuthHandler;
16
import reactor.core.publisher.Mono;
17

18
import java.net.URI;
19
import java.util.Optional;
20

21
import static org.fiware.iam.http.Oid4VpAuthHandler.CLIENT_ID_ATTRIBUTE;
22
import static org.fiware.iam.http.Oid4VpAuthHandler.SCOPE_ATTRIBUTE;
23

24

25
/**
26
 * Adapter to other contract management instances.
27
 */
28
@Requires(condition = GeneralProperties.CentralMarketplaceCondition.class)
29
@Singleton
NEW
30
@Slf4j
×
31
@RequiredArgsConstructor
32
public class ContractManagementAdapter {
33

34
    private static final String ORDER_PATH = "order";
35
    private static final String STOP_EVENT = "stop";
36
    private static final String START_EVENT = "start";
37

38
    private final HttpClient httpClient;
39
    // only use authentication if a handler is provided
40
    private final Optional<AuthHandler> optionalAuthHandler;
41

42
    public Mono<HttpResponse> handleOrderStart(ContractManagement contractManagement, OrderEventVO orderStartEventVO) {
NEW
43
        MutableHttpRequest<OrderEventVO> request = HttpRequest.POST(getOrderUri(contractManagement.getAddress(), START_EVENT), orderStartEventVO);
×
NEW
44
        request.setAttribute(SCOPE_ATTRIBUTE, contractManagement.getScope());
×
NEW
45
        request.setAttribute(CLIENT_ID_ATTRIBUTE, contractManagement.getClientId());
×
NEW
46
        return optionalAuthHandler
×
NEW
47
                .map(authHandler -> authHandler.executeWithAuth(request, req -> Mono.from(httpClient.exchange(req))))
×
NEW
48
                .orElseGet(() -> Mono.from(httpClient.exchange(request, String.class)));
×
49

50
    }
51

52
    public Mono<HttpResponse> handleOrderStop(ContractManagement contractManagement, OrderEventVO orderStopEventVO) {
NEW
53
        MutableHttpRequest<OrderEventVO> request = HttpRequest.POST(getOrderUri(contractManagement.getAddress(), STOP_EVENT), orderStopEventVO);
×
NEW
54
        request.setAttribute(SCOPE_ATTRIBUTE, contractManagement.getScope());
×
NEW
55
        request.setAttribute(CLIENT_ID_ATTRIBUTE, contractManagement.getClientId());
×
NEW
56
        return optionalAuthHandler
×
NEW
57
                .map(authHandler -> authHandler.executeWithAuth(request, req -> Mono.from(httpClient.exchange(req))))
×
NEW
58
                .orElseGet(() -> Mono.from(httpClient.exchange(request)));
×
59
    }
60

61
    private URI getOrderUri(String address, String event) {
NEW
62
        if (address.endsWith("/")) {
×
NEW
63
            return URI.create(address + ORDER_PATH + "/" + event);
×
64
        } else {
NEW
65
            return URI.create(address + "/" + ORDER_PATH + "/" + event);
×
66
        }
67
    }
68
}
69

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