Skip to content
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 @@ -9,12 +9,14 @@ public class SZRowingTrackpoint implements TCXExtension {
private final SZSpeed speed;
private final SZStrokeRate strokeRate;
private final SZRawForce rawForce;
private SZStrokeNumber strokeNumber;

public SZRowingTrackpoint(SZAcceleration acceleration, SZSpeed speed, SZStrokeRate strokeRate, SZRawForce rawForce) {
public SZRowingTrackpoint(SZAcceleration acceleration, SZSpeed speed, SZStrokeRate strokeRate, SZRawForce rawForce, SZStrokeNumber strokeNumber) {
this.acceleration = acceleration;
this.speed = speed;
this.strokeRate = strokeRate;
this.rawForce = rawForce;
this.strokeNumber = strokeNumber;
}

@Override
Expand All @@ -24,6 +26,7 @@ public void serialize(Serializer serializer) {
if(speed != null) speed.serialize(serializer);
if(strokeRate != null) strokeRate.serialize(serializer);
if(rawForce != null) rawForce.serialize(serializer);
if(strokeNumber != null) strokeNumber.serialize(serializer);
serializer.print("</SZRowing>");
}
}
19 changes: 19 additions & 0 deletions src/main/java/com/sweetzpot/tcxextensions/SZStrokeNumber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.sweetzpot.tcxextensions;


import com.sweetzpot.tcxzpot.Serializer;
import com.sweetzpot.tcxzpot.TCXSerializable;

public class SZStrokeNumber implements TCXSerializable {

private int number;

public static SZStrokeNumber strokeNumber(int number){ return new SZStrokeNumber(number); }

public SZStrokeNumber(int number){ this.number = number; }

@Override
public void serialize(Serializer serializer) {
serializer.print("<StrokeNumber>" + number + "</StrokeNumber>");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public class SZRowingTrackpointBuilder {
private SZSpeed speed;
private SZRawForce rawForce;
private SZStrokeRate strokeRate;
private SZStrokeNumber strokeNumber = null;

public static SZRowingTrackpointBuilder rowing() {
return new SZRowingTrackpointBuilder();
Expand Down Expand Up @@ -35,7 +36,12 @@ public SZRowingTrackpointBuilder withStrokeRate(SZStrokeRate strokeRate) {
return this;
}

public SZRowingTrackpointBuilder withStrokeNumber(SZStrokeNumber strokeNumber) {
this.strokeNumber = strokeNumber;
return this;
}

public SZRowingTrackpoint build() {
return new SZRowingTrackpoint(acceleration, speed, strokeRate, rawForce);
return new SZRowingTrackpoint(acceleration, speed, strokeRate, rawForce, strokeNumber);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,32 @@ public void serializesToTCXFormat() throws Exception {
verify(serializer).print("</SZRowing>");
}

@Test
public void serializesToTCXFormatWithStrokeNumber() throws Exception {
Serializer serializer = mock(Serializer.class);
SZAcceleration acceleration = mock(SZAcceleration.class);
SZSpeed speed = mock(SZSpeed.class);
SZStrokeRate strokeRate = mock(SZStrokeRate.class);
SZRawForce rawForce = mock(SZRawForce.class);
SZStrokeNumber strokeNumber = mock(SZStrokeNumber.class);

rowing().withAcceleration(acceleration)
.withSpeed(speed)
.withStrokeRate(strokeRate)
.withRawForce(rawForce)
.withStrokeNumber(strokeNumber)
.build()
.serialize(serializer);

verify(serializer).print("<SZRowing xmlns=\"https://www.sweetzpot.com/xmlschemas/RowingExtension/v1\">");
verify(acceleration).serialize(serializer);
verify(speed).serialize(serializer);
verify(strokeRate).serialize(serializer);
verify(rawForce).serialize(serializer);
verify(strokeNumber).serialize(serializer);
verify(serializer).print("</SZRowing>");
}

@Test
public void serializesToTCXFormatWithMissingArguments() throws Exception {
Serializer serializer = mock(Serializer.class);
Expand Down
21 changes: 21 additions & 0 deletions src/test/java/com/sweetzpot/tcxextensions/SZStrokeNumberTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.sweetzpot.tcxextensions;

import com.sweetzpot.tcxzpot.Serializer;

import org.junit.Test;

import static com.sweetzpot.tcxextensions.SZStrokeNumber.strokeNumber;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;

public class SZStrokeNumberTest {

@Test
public void serializesToTCXFormat() throws Exception {
Serializer serializer = mock(Serializer.class);

strokeNumber(3).serialize(serializer);

verify(serializer).print("<StrokeNumber>3</StrokeNumber>");
}
}