@@ -97,6 +97,48 @@ TEST(TestDefaultOTARequestorStorage, TestDefaultProvidersEmpty)
97
97
EXPECT_FALSE (providers.Begin ().Next ());
98
98
}
99
99
100
+ TEST (TestDefaultOTARequestorStorage, TestDefaultProvidersDuplicated)
101
+ {
102
+ TestPersistentStorageDelegate persistentStorage;
103
+ DefaultOTARequestorStorage otaStorage;
104
+ otaStorage.Init (persistentStorage);
105
+
106
+ const auto makeProvider = [](FabricIndex fabric, NodeId nodeId, EndpointId endpointId) {
107
+ OTARequestorStorage::ProviderLocationType provider;
108
+ provider.fabricIndex = fabric;
109
+ provider.providerNodeID = nodeId;
110
+ provider.endpoint = endpointId;
111
+ return provider;
112
+ };
113
+
114
+ ProviderLocationList providers = {};
115
+
116
+ EXPECT_EQ (CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND, otaStorage.LoadDefaultProviders (providers));
117
+ auto iterator = providers.Begin ();
118
+ EXPECT_EQ (false , iterator.Next ());
119
+
120
+ for (uint8_t i = 0 ; i < CHIP_CONFIG_MAX_FABRICS; i++)
121
+ {
122
+ EXPECT_EQ (CHIP_NO_ERROR, providers.Add (makeProvider (FabricIndex (1 ), NodeId (0x11111111 ), EndpointId (1 ))));
123
+ }
124
+
125
+ EXPECT_EQ (CHIP_NO_ERROR, otaStorage.StoreDefaultProviders (providers));
126
+
127
+ providers = {};
128
+ EXPECT_EQ (CHIP_NO_ERROR, otaStorage.LoadDefaultProviders (providers));
129
+
130
+ iterator = providers.Begin ();
131
+
132
+ // Check provider #1
133
+ EXPECT_EQ (true , iterator.Next ());
134
+ OTARequestorStorage::ProviderLocationType provider1 = iterator.GetValue ();
135
+ EXPECT_EQ (FabricIndex (1 ), provider1.fabricIndex );
136
+ EXPECT_EQ (NodeId (0x11111111 ), provider1.providerNodeID );
137
+ EXPECT_EQ (EndpointId (1 ), provider1.endpoint );
138
+
139
+ EXPECT_EQ (false , iterator.Next ());
140
+ }
141
+
100
142
TEST (TestDefaultOTARequestorStorage, TestCurrentProviderLocation)
101
143
{
102
144
TestPersistentStorageDelegate persistentStorage;
0 commit comments