Skip to content

Commit

Permalink
chore(quality): [eclipse-tractusx#841] add bpn and edcUrl attributes …
Browse files Browse the repository at this point in the history
…to EdcRetrieverException, add builder
  • Loading branch information
dsmf committed Jul 30, 2024
1 parent 3cef700 commit a95e960
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,54 @@
********************************************************************************/
package org.eclipse.tractusx.irs.registryclient.decentral;

import lombok.Getter;

/**
* Thrown in case of error in EDC communication
*/
@Getter
public class EdcRetrieverException extends Exception {

private String bpn;

private String edcUrl;

@Deprecated // TODO (mfischer) remove later, use the builder
public EdcRetrieverException(final Throwable cause) {
super(cause);
}

private EdcRetrieverException(final Builder builder) {
super(builder.cause);
this.bpn = builder.bpn;
this.edcUrl = builder.edcUrl;
}

/**
* Builder for {@link EdcRetrieverException}
*/
public static class Builder {
private final Throwable cause;
private String bpn;
private String edcUrl;

public Builder(final Throwable cause) {
this.cause = cause;
}

public Builder withBpn(final String bpn) {
this.bpn = bpn;
return this;
}

public Builder withEdcUrl(final String edcUrl) {
this.edcUrl = edcUrl;
return this;
}

public EdcRetrieverException build() {
return new EdcRetrieverException(this);
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/********************************************************************************
* Copyright (c) 2022,2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
* Copyright (c) 2021,2024 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/
package org.eclipse.tractusx.irs.registryclient.decentral;

import static org.assertj.core.api.Assertions.assertThat;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

class EdcRetrieverExceptionTest {

@Test
void test() throws EdcRetrieverException {

final EdcRetrieverException build = new EdcRetrieverException.Builder(
new IllegalArgumentException("my illegal arg")).withEdcUrl("my url").withBpn("my bpn").build();

assertThat(build.getBpn()).isEqualTo("my bpn");
assertThat(build.getEdcUrl()).isEqualTo("my url");

Assertions.assertThatThrownBy(() -> {
throw build;
}).hasMessageContaining("my illegal arg");

}
}

0 comments on commit a95e960

Please sign in to comment.