1414
1515#include < gtest/gtest.h>
1616
17+ #include < score/assert_support.hpp>
18+ #include < score/utility.hpp>
19+
1720#include < cstdint>
1821#include < limits>
1922
@@ -25,8 +28,8 @@ namespace
2528TEST (LolaMethodInstanceDeploymentTest, EqualityOperatorWithSameQueueSize)
2629{
2730 // Given two LolaMethodInstanceDeployments with the same queue size
28- LolaMethodInstanceDeployment unit1{50U };
29- LolaMethodInstanceDeployment unit2{50U };
31+ LolaMethodInstanceDeployment unit1{50U , true };
32+ LolaMethodInstanceDeployment unit2{50U , true };
3033
3134 // When comparing them
3235 // Then they should be equal
@@ -36,8 +39,8 @@ TEST(LolaMethodInstanceDeploymentTest, EqualityOperatorWithSameQueueSize)
3639TEST (LolaMethodInstanceDeploymentTest, EqualityOperatorWithDifferentQueueSize)
3740{
3841 // Given two LolaMethodInstanceDeployments with different queue sizes
39- LolaMethodInstanceDeployment unit1{10U };
40- LolaMethodInstanceDeployment unit2{20U };
42+ LolaMethodInstanceDeployment unit1{10U , true };
43+ LolaMethodInstanceDeployment unit2{20U , true };
4144
4245 // When comparing them
4346 // Then they should not be equal
@@ -47,8 +50,8 @@ TEST(LolaMethodInstanceDeploymentTest, EqualityOperatorWithDifferentQueueSize)
4750TEST (LolaMethodInstanceDeploymentTest, DefaultInstancesAreEqual)
4851{
4952 // Given two LolaMethodInstanceDeployments constructed with std::nullopt
50- LolaMethodInstanceDeployment unit1{std::nullopt };
51- LolaMethodInstanceDeployment unit2{std::nullopt };
53+ LolaMethodInstanceDeployment unit1{std::nullopt , true };
54+ LolaMethodInstanceDeployment unit2{std::nullopt , true };
5255
5356 // When comparing them
5457 // Then they should be equal
@@ -58,30 +61,33 @@ TEST(LolaMethodInstanceDeploymentTest, DefaultInstancesAreEqual)
5861TEST (LolaMethodInstanceDeploymentTest, MaxQueueSize)
5962{
6063 // Given a LolaMethodInstanceDeployment with maximum queue size
61- LolaMethodInstanceDeployment unit{std::numeric_limits<LolaMethodInstanceDeployment::QueueSize>::max ()};
64+ LolaMethodInstanceDeployment unit{std::numeric_limits<LolaMethodInstanceDeployment::QueueSize>::max (), true };
6265
6366 // Then the queue size should match
6467 EXPECT_EQ (unit.queue_size_ , std::numeric_limits<LolaMethodInstanceDeployment::QueueSize>::max ());
6568}
6669
67- TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithQueueSize )
70+ TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithQueueSizeAndEnabledFlag )
6871{
6972 // Given a JSON object with queueSize
7073 const LolaMethodInstanceDeployment::QueueSize queue_size{20U };
7174 score::json::Object json_object{};
7275 json_object[" queueSize" ] = score::json::Any{queue_size};
76+ json_object[" use" ] = score::json::Any{true };
7377
7478 // When creating from JSON
7579 auto unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
7680
7781 // Then the queue size should match the value from JSON
7882 EXPECT_EQ (unit.queue_size_ , queue_size);
83+ EXPECT_TRUE (unit.enabled_ );
7984}
8085
8186TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutQueueSizeResultsInNullopt)
8287{
8388 // Given an empty JSON object
8489 score::json::Object json_object{};
90+ json_object[" use" ] = score::json::Any{true };
8591
8692 // When creating from JSON
8793 auto unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
@@ -91,19 +97,16 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutQueueSi
9197 EXPECT_EQ (unit.queue_size_ , std::nullopt );
9298}
9399
94- TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutEnabledLeavesEnabledUnset )
100+ TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutEnabledFlagTerminates )
95101{
96102 // Given a JSON object without enabled
97103 const LolaMethodInstanceDeployment::QueueSize queue_size{20U };
98104 score::json::Object json_object{};
99105 json_object[" queueSize" ] = score::json::Any{queue_size};
100106
101107 // When creating from JSON
102- auto unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
103-
104- // Then the method instance should keep enabled unset
105- EXPECT_FALSE (unit.enabled_ .has_value ());
106- EXPECT_EQ (unit.enabled_ , std::nullopt );
108+ // Then we terminate because the enabled flag is required.
109+ SCORE_LANGUAGE_FUTURECPP_EXPECT_CONTRACT_VIOLATED (LolaMethodInstanceDeployment::CreateFromJson (json_object));
107110}
108111
109112TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledFalseDisablesMethod)
@@ -116,8 +119,7 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledFal
116119 auto unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
117120
118121 // Then the method instance should be disabled
119- ASSERT_TRUE (unit.enabled_ .has_value ());
120- EXPECT_FALSE (unit.enabled_ .value ());
122+ EXPECT_FALSE (unit.enabled_ );
121123}
122124
123125TEST (LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledTrueEnablesMethod)
@@ -130,8 +132,7 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledTru
130132 auto unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
131133
132134 // Then the method instance should be enabled
133- ASSERT_TRUE (unit.enabled_ .has_value ());
134- EXPECT_TRUE (unit.enabled_ .value ());
135+ EXPECT_TRUE (unit.enabled_ );
135136}
136137
137138TEST (LolaMethodInstanceDeploymentSerializationTest, SerializeAndDeserializePreservesQueueSize)
@@ -140,6 +141,8 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeAndDeserializePrese
140141 const LolaMethodInstanceDeployment::QueueSize queue_size{100U };
141142 score::json::Object json_object{};
142143 json_object[" queueSize" ] = score::json::Any{queue_size};
144+ json_object[" use" ] = score::json::Any{true };
145+
143146 auto original_unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
144147
145148 // When serializing and deserializing
@@ -157,6 +160,8 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeIncludesQueueSize)
157160 const LolaMethodInstanceDeployment::QueueSize queue_size{42U };
158161 score::json::Object json_object{};
159162 json_object[" queueSize" ] = score::json::Any{queue_size};
163+ json_object[" use" ] = score::json::Any{true };
164+
160165 auto unit = LolaMethodInstanceDeployment::CreateFromJson (json_object);
161166
162167 // When serializing
@@ -180,8 +185,7 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeAndDeserializePrese
180185 auto reconstructed_unit = LolaMethodInstanceDeployment::CreateFromJson (serialized);
181186
182187 // Then the use state should be preserved
183- ASSERT_TRUE (reconstructed_unit.enabled_ .has_value ());
184- EXPECT_FALSE (reconstructed_unit.enabled_ .value ());
188+ EXPECT_FALSE (reconstructed_unit.enabled_ );
185189 EXPECT_EQ (reconstructed_unit, original_unit);
186190}
187191
0 commit comments