/// <summary> /// This method will test the read based on different settings. /// It will call the correct overload and set the state properly. /// </summary> protected override void Test() { CError.WriteLine("Testing : " + TestFileName); string tempStr = null; switch (_overload) { case ReaderOverload.StreamReader: _textReader = new StreamReader(FilePathUtil.getStream(GetFile(TestFileName))); CreateReader(ReadThru.TextReader); break; case ReaderOverload.StringReader: StreamReader sr = new StreamReader(FilePathUtil.getStream(GetFile(TestFileName))); tempStr = sr.ReadToEnd(); sr.Dispose(); _textReader = new StringReader(tempStr); CreateReader(ReadThru.TextReader); break; case ReaderOverload.FileStream: _stream = FilePathUtil.getStream(TestFileName); CreateReader(ReadThru.Stream); break; case ReaderOverload.MemoryStream: StreamReader sr1 = new StreamReader(FilePathUtil.getStream(GetFile(TestFileName))); tempStr = sr1.ReadToEnd(); sr1.Dispose(); byte[] bits = _enc.GetBytes(tempStr); _stream = new MemoryStream(bits); CreateReader(ReadThru.Stream); break; case ReaderOverload.CoreReader: _underlyingSettings.DtdProcessing = DtdProcessing.Ignore; _underlyingSettings.ConformanceLevel = _settings.ConformanceLevel; StringReader strr = new StringReader(new StreamReader(FilePathUtil.getStream(GetFile(TestFileName))).ReadToEnd()); _underlyingReader = ReaderHelper.CreateReader(_overload.ToString(), strr, false, null, _underlyingSettings, (_settings.ConformanceLevel == ConformanceLevel.Fragment)); //should this be settings or underlyingSettings? CError.Compare(_underlyingReader != null, "ReaderHelper returned null Reader"); CreateReader(ReadThru.XmlReader); break; case ReaderOverload.CustomReader: if (AsyncUtil.IsAsyncEnabled) { pstate = TestState.Skip; return; } if (_settings.ConformanceLevel != ConformanceLevel.Fragment) { _underlyingReader = new CustomReader(FilePathUtil.getStream(GetFile(TestFileName)), false); } else { _underlyingReader = new CustomReader(FilePathUtil.getStream(GetFile(TestFileName)), true); } CError.Compare(_underlyingReader != null, "ReaderHelper returned null Reader"); CreateReader(ReadThru.XmlReader); break; default: throw new CTestFailedException("Unknown ReaderOverload: " + _overload); } if (_underlyingReader != null) { CError.WriteLineIgnore("Type of Reader : " + _underlyingReader.GetType()); } if (pstate == TestState.Pass) { return; } CError.Compare(pstate, TestState.CreateSuccess, "Invalid State after Create: " + pstate); //By this time the factory Reader is already set up correctly. So we must go Consume it now. CError.Compare(pstate != TestState.Pass && pstate == TestState.CreateSuccess, "Invalid state before Consuming Reader: " + pstate); //Call TestReader to Consume Reader; TestReader(); if (pstate == TestState.Pass) { return; } CError.Compare(pstate != TestState.Pass && pstate == TestState.Consume, "Invalid state after Consuming Reader: " + pstate); }
public override XmlReader Create(MyDict <string, object> options) { string tcDesc = (string)options[ReaderFactory.HT_CURDESC]; string tcVar = (string)options[ReaderFactory.HT_CURVAR]; CError.Compare(tcDesc == "charcheckingreader", "Invalid testcase"); XmlReaderSettings rs = (XmlReaderSettings)options[ReaderFactory.HT_READERSETTINGS]; Stream stream = (Stream)options[ReaderFactory.HT_STREAM]; string filename = (string)options[ReaderFactory.HT_FILENAME]; object readerType = options[ReaderFactory.HT_READERTYPE]; object vt = options[ReaderFactory.HT_VALIDATIONTYPE]; string fragment = (string)options[ReaderFactory.HT_FRAGMENT]; StringReader sr = (StringReader)options[ReaderFactory.HT_STRINGREADER]; if (rs == null) { rs = new XmlReaderSettings(); } rs.DtdProcessing = DtdProcessing.Ignore; rs.CheckCharacters = false; XmlReaderSettings wrs = new XmlReaderSettings(); wrs.DtdProcessing = DtdProcessing.Ignore; wrs.CheckCharacters = true; wrs.ConformanceLevel = ConformanceLevel.Auto; if (sr != null) { CError.WriteLine("CharCheckingReader String"); XmlReader r = ReaderHelper.Create(sr, rs, string.Empty); XmlReader wr = ReaderHelper.Create(r, wrs); return(wr); } if (stream != null) { CError.WriteLine("CharCheckingReader Stream"); XmlReader r = ReaderHelper.Create(stream, rs, filename); XmlReader wr = ReaderHelper.Create(r, wrs); return(wr); } if (fragment != null) { CError.WriteLine("CharCheckingReader Fragment"); rs.ConformanceLevel = ConformanceLevel.Fragment; StringReader tr = new StringReader(fragment); XmlReader r = ReaderHelper.Create(tr, rs, (string)null); XmlReader wr = ReaderHelper.Create(r, wrs); return(wr); } if (filename != null) { CError.WriteLine("CharCheckingReader Filename"); Stream fs = FilePathUtil.getStream(filename); XmlReader r = ReaderHelper.Create(fs, rs, filename); XmlReader wr = ReaderHelper.Create(r, wrs); return(wr); } return(null); }
public Stream GetStream() { return(FilePathUtil.getStream(_sampleFileName)); }
public override XmlReader Create(MyDict <string, object> options) { string tcDesc = (string)options[ReaderFactory.HT_CURDESC]; string tcVar = (string)options[ReaderFactory.HT_CURVAR]; CError.Compare(tcDesc == "subtreereader", "Invalid testcase"); XmlReaderSettings rs = (XmlReaderSettings)options[ReaderFactory.HT_READERSETTINGS]; Stream stream = (Stream)options[ReaderFactory.HT_STREAM]; string filename = (string)options[ReaderFactory.HT_FILENAME]; object readerType = options[ReaderFactory.HT_READERTYPE]; object vt = options[ReaderFactory.HT_VALIDATIONTYPE]; string fragment = (string)options[ReaderFactory.HT_FRAGMENT]; StringReader sr = (StringReader)options[ReaderFactory.HT_STRINGREADER]; if (rs == null) { rs = new XmlReaderSettings(); } rs.DtdProcessing = DtdProcessing.Ignore; if (sr != null) { CError.WriteLine("SubtreeReader String"); XmlReader r = ReaderHelper.Create(sr, rs, string.Empty); while (r.Read()) { if (r.NodeType == XmlNodeType.Element) { break; } } XmlReader wr = r.ReadSubtree(); return(wr); } if (stream != null) { CError.WriteLine("SubtreeReader Stream"); XmlReader r = ReaderHelper.Create(stream, rs, filename); while (r.Read()) { if (r.NodeType == XmlNodeType.Element) { break; } } XmlReader wr = r.ReadSubtree(); return(wr); } if (fragment != null) { CError.WriteLine("SubtreeReader Fragment"); rs.ConformanceLevel = ConformanceLevel.Fragment; StringReader tr = new StringReader(fragment); XmlReader r = ReaderHelper.Create(tr, rs, (string)null); while (r.Read()) { if (r.NodeType == XmlNodeType.Element) { break; } } XmlReader wr = r.ReadSubtree(); return(wr); } if (filename != null) { CError.WriteLine("SubtreeReader Filename"); Stream fs = FilePathUtil.getStream(filename); XmlReader r = ReaderHelper.Create(fs, rs, filename); while (r.Read()) { if (r.NodeType == XmlNodeType.Element) { break; } } XmlReader wr = r.ReadSubtree(); return(wr); } throw new CTestFailedException("SubtreeReader not created"); }