Skip to content

Commit 04111d7

Browse files
authored
Fix bug in group manager initialisation and add test (#1442)
Signed-off-by: Chris Jackson <[email protected]>
1 parent c389dda commit 04111d7

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/groups/ZigBeeNetworkGroupManager.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,16 @@ public ZigBeeNetworkGroupManager(ZigBeeNetworkManager networkManager) {
113113
}
114114

115115
public void initialize() {
116-
networkManager.readNetworkDataStore(DATASTORE_KEY_GROUPS);
116+
Set<ZigBeeGroupDao> daoSet = (Set<ZigBeeGroupDao>) networkManager.readNetworkDataStore(DATASTORE_KEY_GROUPS);
117+
if (daoSet == null) {
118+
return;
119+
}
120+
121+
for (ZigBeeGroupDao dao : daoSet) {
122+
ZigBeeGroup group = new ZigBeeGroup(networkManager, 0);
123+
group.setDao(dao);
124+
networkGroups.put(group.getGroupId(), group);
125+
}
117126
}
118127

119128
public void shutdown() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* Copyright (c) 2016-2024 by the respective copyright holders.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* http://www.eclipse.org/legal/epl-v10.html
7+
*/
8+
package com.zsmartsystems.zigbee.groups;
9+
10+
import static org.junit.Assert.assertEquals;
11+
import static org.junit.Assert.assertTrue;
12+
import static org.mockito.ArgumentMatchers.any;
13+
14+
import java.util.HashSet;
15+
import java.util.Set;
16+
17+
import org.junit.Test;
18+
import org.mockito.Mockito;
19+
20+
import com.zsmartsystems.zigbee.ZigBeeNetworkManager;
21+
22+
/**
23+
* Tests for {@link ZigBeeNetworkGroupManager}
24+
*
25+
* @author Chris Jackson
26+
*
27+
*/
28+
public class ZigBeeNetworkGroupManagerTest {
29+
30+
@Test
31+
public void initialize() {
32+
ZigBeeNetworkManager networkManager = Mockito.mock(ZigBeeNetworkManager.class);
33+
ZigBeeNetworkGroupManager groupManager = new ZigBeeNetworkGroupManager(networkManager);
34+
35+
assertTrue(groupManager.getAll().isEmpty());
36+
groupManager.initialize();
37+
assertTrue(groupManager.getAll().isEmpty());
38+
39+
Set<ZigBeeGroupDao> daoSet = new HashSet<>();
40+
daoSet.add(new ZigBeeGroupDao());
41+
42+
Mockito.when(networkManager.readNetworkDataStore(any())).thenReturn(daoSet);
43+
44+
assertTrue(groupManager.getAll().isEmpty());
45+
groupManager.initialize();
46+
assertEquals(1, groupManager.getAll().size());
47+
}
48+
}

0 commit comments

Comments
 (0)