public void ReadAllEntriesFromFile_WhenCalled_ReturnsConfigEntries() { // Arrange var key1 = "key1"; var key2 = "key2"; var key3 = "key3"; var key4 = "key4"; var value1 = "value1"; var value2 = "value2"; var value3 = "value3"; var value4 = "value4"; var xml = string.Format("<items>" + "<item key=\"{0}\" value=\"{1}\" />" + "<item key=\"{2}\" value=\"{3}\" />" + "<item key=\"{4}\" value=\"{5}\" />" + "<item key=\"{6}\" value=\"{7}\" />" + "</items>", key1, value1, key2, value2, key3, value3, key4, value4); var document = XDocument.Parse(xml); _xDocumentWrapper.Load(Arg.Any <string>()).Returns(document); // Act var result = _fileManager.ReadAllEntriesFromFile(); // Assert Assert.AreEqual(4, result.Count); Assert.AreEqual(value1, result.First(x => x.key == key1).value); Assert.AreEqual(value2, result.First(x => x.key == key2).value); Assert.AreEqual(value3, result.First(x => x.key == key3).value); Assert.AreEqual(value4, result.First(x => x.key == key4).value); }
/// <summary> /// Retrieve all the config items from the xml file. /// </summary> /// <returns>List of config items.</returns> public List <IConfigItem> ReadAllEntriesFromFile() { var configItems = new List <IConfigItem>(); var file = _xDocumentWrapper.Load(filePath); var items = file.Element(itemsElement).Elements(itemElement); foreach (var item in items) { var key = WebUtility.HtmlDecode(item.Attribute(keyAttribute).Value); var value = WebUtility.HtmlDecode(item.Attribute(valueAttribute).Value); configItems.Add(new ConfigItem(key, value)); } return(configItems); }