From ca2cbab60668f693c0e1e12726dacb8566b4165a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 27 Feb 2018 13:11:34 +0100 Subject: [PATCH 1/5] creating SZStrokeNumber class to serialize stroke number --- .../tcxextensions/SZStrokeNumber.java | 19 +++++++++++++++++ .../tcxextensions/SZStrokeNumberTest.java | 21 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/main/java/com/sweetzpot/tcxextensions/SZStrokeNumber.java create mode 100644 src/test/java/com/sweetzpot/tcxextensions/SZStrokeNumberTest.java diff --git a/src/main/java/com/sweetzpot/tcxextensions/SZStrokeNumber.java b/src/main/java/com/sweetzpot/tcxextensions/SZStrokeNumber.java new file mode 100644 index 0000000..2eab8cf --- /dev/null +++ b/src/main/java/com/sweetzpot/tcxextensions/SZStrokeNumber.java @@ -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("" + number + ""); + } +} diff --git a/src/test/java/com/sweetzpot/tcxextensions/SZStrokeNumberTest.java b/src/test/java/com/sweetzpot/tcxextensions/SZStrokeNumberTest.java new file mode 100644 index 0000000..4324bb6 --- /dev/null +++ b/src/test/java/com/sweetzpot/tcxextensions/SZStrokeNumberTest.java @@ -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("3"); + } +} \ No newline at end of file From e8cafa3b568aa5695635ef56dc48e2d233ef7114 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 27 Feb 2018 13:14:26 +0100 Subject: [PATCH 2/5] adding stroke number to rowing trackpoint --- .../tcxextensions/SZRowingTrackpoint.java | 10 +++++++ .../builders/SZRowingTrackpointBuilder.java | 8 +++++- .../tcxextensions/SZRowingTrackpointTest.java | 27 +++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java b/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java index e7f8d01..19423d7 100644 --- a/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java +++ b/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java @@ -9,6 +9,7 @@ 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) { this.acceleration = acceleration; @@ -17,6 +18,14 @@ public SZRowingTrackpoint(SZAcceleration acceleration, SZSpeed speed, SZStrokeRa this.rawForce = 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 public void serialize(Serializer serializer) { serializer.print(""); @@ -24,6 +33,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(""); } } diff --git a/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java b/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java index eaf8d5a..e73347d 100644 --- a/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java +++ b/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java @@ -8,6 +8,7 @@ public class SZRowingTrackpointBuilder { private SZSpeed speed; private SZRawForce rawForce; private SZStrokeRate strokeRate; + private SZStrokeNumber strokeNumber = SZStrokeNumber.strokeNumber(-1); public static SZRowingTrackpointBuilder rowing() { return new SZRowingTrackpointBuilder(); @@ -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); } } diff --git a/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java b/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java index 313d231..9d4860c 100644 --- a/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java +++ b/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java @@ -29,6 +29,33 @@ public void serializesToTCXFormat() throws Exception { verify(speed).serialize(serializer); verify(strokeRate).serialize(serializer); verify(rawForce).serialize(serializer); + verify(serializer).print("-1"); + verify(serializer).print(""); + } + + @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(""); + verify(acceleration).serialize(serializer); + verify(speed).serialize(serializer); + verify(strokeRate).serialize(serializer); + verify(rawForce).serialize(serializer); + verify(strokeNumber).serialize(serializer); verify(serializer).print(""); } From 3c49e38e13d0fbe65bf4c6848d6cb589c3c6cad7 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 27 Feb 2018 13:22:32 +0100 Subject: [PATCH 3/5] removing unused constructor --- .../com/sweetzpot/tcxextensions/SZRowingTrackpoint.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java b/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java index 19423d7..b99ef34 100644 --- a/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java +++ b/src/main/java/com/sweetzpot/tcxextensions/SZRowingTrackpoint.java @@ -11,13 +11,6 @@ public class SZRowingTrackpoint implements TCXExtension { private final SZRawForce rawForce; private SZStrokeNumber strokeNumber; - public SZRowingTrackpoint(SZAcceleration acceleration, SZSpeed speed, SZStrokeRate strokeRate, SZRawForce rawForce) { - this.acceleration = acceleration; - this.speed = speed; - this.strokeRate = strokeRate; - this.rawForce = rawForce; - } - public SZRowingTrackpoint(SZAcceleration acceleration, SZSpeed speed, SZStrokeRate strokeRate, SZRawForce rawForce, SZStrokeNumber strokeNumber) { this.acceleration = acceleration; this.speed = speed; From 711d777f2826af4f6553fd6d80a26c19944e931d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 27 Feb 2018 13:29:49 +0100 Subject: [PATCH 4/5] using null stroke number by default --- .../tcxextensions/builders/SZRowingTrackpointBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java b/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java index e73347d..f36bfa0 100644 --- a/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java +++ b/src/main/java/com/sweetzpot/tcxextensions/builders/SZRowingTrackpointBuilder.java @@ -8,7 +8,7 @@ public class SZRowingTrackpointBuilder { private SZSpeed speed; private SZRawForce rawForce; private SZStrokeRate strokeRate; - private SZStrokeNumber strokeNumber = SZStrokeNumber.strokeNumber(-1); + private SZStrokeNumber strokeNumber = null; public static SZRowingTrackpointBuilder rowing() { return new SZRowingTrackpointBuilder(); From 6f6113aa973ff11f5d00933d2921383156e825c0 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 27 Feb 2018 13:34:00 +0100 Subject: [PATCH 5/5] fixing test (stroke number not appearing if not added to builder) --- .../java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java b/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java index 9d4860c..9102989 100644 --- a/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java +++ b/src/test/java/com/sweetzpot/tcxextensions/SZRowingTrackpointTest.java @@ -29,7 +29,6 @@ public void serializesToTCXFormat() throws Exception { verify(speed).serialize(serializer); verify(strokeRate).serialize(serializer); verify(rawForce).serialize(serializer); - verify(serializer).print("-1"); verify(serializer).print(""); }