public void XmlParsingAsync_EndToEnd_CorrectData(string testCase) { //This is a series of end-to-end integration tests of XML parsing //arrange var testData = _testDataRepo[testCase]; var inputXML = testData.Item1; var settings = testData.Item2; var dummySourceNo = 6; var xrecordSupplier = new XmlFeederForSource(new StringReader(inputXML), dummySourceNo, settings, true); var xrecordSupplierPO = new PrivateObject(xrecordSupplier); var actual = new List <Xrecord>(); var expected = testData.Item3; //act Xrecord elem; while ((elem = ((Task <Xrecord>)xrecordSupplierPO.Invoke("SupplyNextXrecordAsync")).Result) != null) { actual.Add(elem); } //assert actual.Count.Should().Be(expected.Count); for (var i = 0; i < actual.Count; i++) { actual[i].Should().BeEquivalentTo(expected[i]); } }
public void ReadToEndAsync__ConsumesAllInput() { //This end-to-end integration test of XML parsing verifies that EOD mark is supplied upon exhausting data on input //arrange var testData = _testDataRepo["Members_1"]; var inputXML = testData.Item1; var settings = testData.Item2; var dummySourceNo = 6; var xrecordSupplier = new XmlFeederForSource(new StringReader(inputXML), dummySourceNo, settings, true); var xrecordSupplierPO = new PrivateObject(xrecordSupplier); //act xrecordSupplier.ReadToEnd(); var elem = xrecordSupplierPO.Invoke("SupplyNextXrecordAsync") as Task <Xrecord>; //assert elem.Result.Should().BeNull(); }