diff --git a/test/test_topology.cpp b/test/test_topology.cpp
index f9beee3..e23c802 100644
--- a/test/test_topology.cpp
+++ b/test/test_topology.cpp
@@ -12,6 +12,8 @@
 
 const Association subchassisAssoc =
     std::make_tuple("contained_by", "containing", superchassisPath);
+const Association powerAssoc = std::make_tuple("powered_by", "powering",
+                                               subchassisPath);
 
 const nlohmann::json subchassisExposesItem = nlohmann::json::parse(R"(
     {
@@ -21,6 +23,15 @@
     }
 )");
 
+const nlohmann::json powerExposesItem = nlohmann::json::parse(R"(
+    {
+        "ConnectsToType": "BackplanePort",
+        "Name": "MyDownstreamPort",
+        "Type": "DownstreamPort",
+        "PowerPort": true
+    }
+)");
+
 const nlohmann::json superchassisExposesItem = nlohmann::json::parse(R"(
     {
         "Name": "MyBackplanePort",
@@ -138,6 +149,24 @@
     EXPECT_EQ(assocs[subchassisPath][0], subchassisAssoc);
 }
 
+TEST(Topology, BasicPower)
+{
+    Topology topo;
+    BoardMap boards{{subchassisPath, "BoardA"}, {superchassisPath, "BoardB"}};
+
+    topo.addBoard(subchassisPath, "Chassis", "BoardA", powerExposesItem);
+    topo.addBoard(superchassisPath, "Chassis", "BoardB",
+                  superchassisExposesItem);
+
+    auto assocs = topo.getAssocs(boards);
+
+    EXPECT_EQ(assocs.size(), 2);
+    EXPECT_EQ(assocs[subchassisPath].size(), 1);
+    EXPECT_EQ(assocs[subchassisPath][0], subchassisAssoc);
+    EXPECT_EQ(assocs[superchassisPath].size(), 1);
+    EXPECT_EQ(assocs[superchassisPath][0], powerAssoc);
+}
+
 TEST(Topology, NoNewBoards)
 {
     Topology topo;
