diff --git a/test/test_config_parser.cpp b/test/test_config_parser.cpp
index e7d44ef..0dd16af 100644
--- a/test/test_config_parser.cpp
+++ b/test/test_config_parser.cpp
@@ -94,7 +94,7 @@
     void ValidateSectionMap()
     {
         EXPECT_THAT(
-            parser.getMap(),
+            parser.map,
             testing::ContainerEq(SectionMap(SectionMapInt{
                 {"Match", {{{"Name", {"eth0"}}}}},
                 {"Network",
@@ -114,7 +114,7 @@
 {
     EXPECT_TRUE(parser.getFilename().empty());
     EXPECT_EQ(0, parser.getWarnings().size());
-    EXPECT_EQ(SectionMap(), parser.getMap());
+    EXPECT_EQ(SectionMap(), parser.map);
 }
 
 TEST_F(TestConfigParser, ReadDirectory)
@@ -122,7 +122,7 @@
     parser.setFile("/");
     EXPECT_EQ("/", parser.getFilename());
     EXPECT_EQ(1, parser.getWarnings().size());
-    EXPECT_EQ(SectionMap(), parser.getMap());
+    EXPECT_EQ(SectionMap(), parser.map);
 }
 
 TEST_F(TestConfigParser, ReadConfigDataMissingFile)
@@ -130,7 +130,7 @@
     parser.setFile("/no-such-path");
     EXPECT_EQ("/no-such-path", parser.getFilename());
     EXPECT_EQ(1, parser.getWarnings().size());
-    EXPECT_EQ(SectionMap(), parser.getMap());
+    EXPECT_EQ(SectionMap(), parser.map);
 }
 
 TEST_F(TestConfigParser, ReadConfigDataFromFile)
@@ -141,7 +141,7 @@
     EXPECT_EQ(4, parser.getWarnings().size());
     ValidateSectionMap();
 
-    const auto& map = parser.getMap();
+    const auto& map = parser.map;
 
     EXPECT_EQ("eth0", *map.getLastValueString("Match", "Name"));
     EXPECT_EQ("yes", *map.getLastValueString("Network", "DHCP"));
diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index e340d7b..ac96190 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -165,7 +165,7 @@
     fs::path filePath = confDir;
     filePath /= "00-bmc-test0.network";
     config::Parser parser(filePath.string());
-    EXPECT_EQ(servers, parser.getMap().getValueStrings("Network", "DNS"));
+    EXPECT_EQ(servers, parser.map.getValueStrings("Network", "DNS"));
 }
 
 TEST_F(TestEthernetInterface, getDynamicNameServers)
@@ -184,7 +184,7 @@
     fs::path filePath = confDir;
     filePath /= "00-bmc-test0.network";
     config::Parser parser(filePath.string());
-    EXPECT_EQ(servers, parser.getMap().getValueStrings("Network", "NTP"));
+    EXPECT_EQ(servers, parser.map.getValueStrings("Network", "NTP"));
 }
 
 TEST_F(TestEthernetInterface, addGateway)
diff --git a/test/test_vlan_interface.cpp b/test/test_vlan_interface.cpp
index 728199a..8d31c7b 100644
--- a/test/test_vlan_interface.cpp
+++ b/test/test_vlan_interface.cpp
@@ -103,14 +103,13 @@
     filePath /= "test0.50.netdev";
 
     config::Parser parser(filePath);
-    EXPECT_EQ(parser.getMap(),
-              config::SectionMap(config::SectionMapInt{
-                  {"NetDev",
-                   {
-                       {{"Name", {"test0.50"}}, {"Kind", {"vlan"}}},
-                   }},
-                  {"VLAN", {{{"Id", {"50"}}}}},
-              }));
+    EXPECT_EQ(parser.map, config::SectionMap(config::SectionMapInt{
+                              {"NetDev",
+                               {
+                                   {{"Name", {"test0.50"}}, {"Kind", {"vlan"}}},
+                               }},
+                              {"VLAN", {{{"Id", {"50"}}}}},
+                          }));
 }
 
 TEST_F(TestVlanInterface, deleteVLAN)
@@ -131,26 +130,24 @@
     fs::path filePath = confDir;
     filePath /= "test0.50.netdev";
     config::Parser parser(filePath);
-    EXPECT_EQ(parser.getMap(),
-              config::SectionMap(config::SectionMapInt{
-                  {"NetDev",
-                   {
-                       {{"Name", {"test0.50"}}, {"Kind", {"vlan"}}},
-                   }},
-                  {"VLAN", {{{"Id", {"50"}}}}},
-              }));
+    EXPECT_EQ(parser.map, config::SectionMap(config::SectionMapInt{
+                              {"NetDev",
+                               {
+                                   {{"Name", {"test0.50"}}, {"Kind", {"vlan"}}},
+                               }},
+                              {"VLAN", {{{"Id", {"50"}}}}},
+                          }));
 
     filePath = confDir;
     filePath /= "test0.60.netdev";
     parser.setFile(filePath);
-    EXPECT_EQ(parser.getMap(),
-              config::SectionMap(config::SectionMapInt{
-                  {"NetDev",
-                   {
-                       {{"Name", {"test0.60"}}, {"Kind", {"vlan"}}},
-                   }},
-                  {"VLAN", {{{"Id", {"60"}}}}},
-              }));
+    EXPECT_EQ(parser.map, config::SectionMap(config::SectionMapInt{
+                              {"NetDev",
+                               {
+                                   {{"Name", {"test0.60"}}, {"Kind", {"vlan"}}},
+                               }},
+                              {"VLAN", {{{"Id", {"60"}}}}},
+                          }));
 
     deleteVlan("test0.50");
     deleteVlan("test0.60");
