Skip to content
This repository has been archived by the owner on Jun 1, 2022. It is now read-only.

Make ConnectionNewAddress Frame's address optional address #459

Merged
merged 6 commits into from
May 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@
*/

import org.interledger.codecs.ilp.AsnInterledgerAddressCodec;
import org.interledger.core.InterledgerAddress;
import org.interledger.encoding.asn.codecs.AsnSequenceCodec;
import org.interledger.stream.frames.ConnectionNewAddressFrame;

import java.util.Optional;

public class AsnConnectionNewAddressFrameDataCodec extends AsnSequenceCodec<ConnectionNewAddressFrame> {

/**
Expand All @@ -37,13 +40,14 @@ public AsnConnectionNewAddressFrameDataCodec() {

@Override
public ConnectionNewAddressFrame decode() {
final Optional<InterledgerAddress> address = Optional.ofNullable(getValueAt(0));
return ConnectionNewAddressFrame.builder()
.sourceAddress(getValueAt(0))
.sourceAddress(address)
.build();
}

@Override
public void encode(ConnectionNewAddressFrame value) {
setValueAt(0, value.sourceAddress());
setValueAt(0, value.sourceAddress().orElse(null));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ public static Collection<Object[]> data() {
.sourceAddress(InterledgerAddress.of(JUST_RIGHT))
.build()
},
// empty address
{
ConnectionNewAddressFrame.builder().build()
},
});
}
}
16 changes: 8 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,20 +59,20 @@

<developers>
<developer>
<name>Adrian Hope-Bailie</name>
<organizationUrl>https://github.com/adrianhopebailie</organizationUrl>
<name>David Fuelling</name>
<organizationUrl>https://github.com/sappenin</organizationUrl>
</developer>
<developer>
<name>Andrew Gates</name>
<organizationUrl>https://github.com/andrew-g-za</organizationUrl>
<name>Neil Hartner</name>
<organizationUrl>https://github.com/nhartner</organizationUrl>
</developer>
<developer>
<name>Enrique Benito</name>
<organizationUrl>https://github.com/earizon</organizationUrl>
<name>Noah Kramer</name>
<organizationUrl>https://github.com/nkramer44</organizationUrl>
</developer>
<developer>
<name>David Fuelling</name>
<organizationUrl>https://github.com/sappenin</organizationUrl>
<name>Ian Simpson</name>
<organizationUrl>https://github.com/theotherian</organizationUrl>
</developer>
</developers>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
import org.interledger.core.Immutable;
import org.interledger.core.InterledgerAddress;

import java.util.Optional;

/**
* Indicates that the connection was closed.
*/
Expand All @@ -48,6 +50,6 @@ default StreamFrameType streamFrameType() {
*
* @return A {@link InterledgerAddress} representing the source address of the receiver.
*/
InterledgerAddress sourceAddress();
Optional<InterledgerAddress> sourceAddress();

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import static org.interledger.stream.frames.StreamFrameConstants.STREAM_MONEY;
import static org.interledger.stream.frames.StreamFrameConstants.STREAM_MONEY_BLOCKED;
import static org.interledger.stream.frames.StreamFrameConstants.STREAM_MONEY_MAX;
import static org.mockito.Mockito.spy;

import org.interledger.core.InterledgerAddress;
import org.interledger.stream.Denomination;
Expand Down Expand Up @@ -188,12 +187,16 @@ public void connectionNewAddressFrame() {
.build();
assertThat(frame.streamFrameType()).isEqualTo(StreamFrameType.ConnectionNewAddress);
// make sure interface default method is exercised
final ConnectionNewAddressFrame interfaceFrame = new ConnectionNewAddressFrame() {
@Override
public InterledgerAddress sourceAddress() {
return null;
}
};
final ConnectionNewAddressFrame interfaceFrame = () -> Optional.empty();
assertThat(interfaceFrame.streamFrameType()).isEqualTo(StreamFrameType.ConnectionNewAddress);
}

@Test
public void connectionNewAddressFrameWithEmptyAddress() {
ConnectionNewAddressFrame frame = ConnectionNewAddressFrame.builder().build();
assertThat(frame.streamFrameType()).isEqualTo(StreamFrameType.ConnectionNewAddress);
// make sure interface default method is exercised
final ConnectionNewAddressFrame interfaceFrame = () -> Optional.empty();
assertThat(interfaceFrame.streamFrameType()).isEqualTo(StreamFrameType.ConnectionNewAddress);
}

Expand Down