示例#1
0
		private static void TestParseCore( string content, string expected, bool writeBom )
		{
			using ( var buffer = new MemoryStream() )
			{
				if ( writeBom )
				{
					var bom = Encoding.UTF8.GetPreamble();
					buffer.Write( bom, 0, bom.Length );
				}

				var contentBytes = Encoding.UTF8.GetBytes( content );
				buffer.Write( contentBytes, 0, contentBytes.Length );

				buffer.Position = 0;

				SvcDirectiveParserState target = new InitialState();

				using ( var reader = new StreamReader( buffer ) )
				{
					do
					{
						target = target.Parse( reader );
					}
					while ( !target.IsFinished );
				}

				Assert.That( target.Directive.Service, Is.EqualTo( expected ) );
			}
		}
        private static void TestParseCore(string content, string expected, bool writeBom)
        {
            using (var buffer = new MemoryStream())
            {
                if (writeBom)
                {
                    var bom = Encoding.UTF8.GetPreamble();
                    buffer.Write(bom, 0, bom.Length);
                }

                var contentBytes = Encoding.UTF8.GetBytes(content);
                buffer.Write(contentBytes, 0, contentBytes.Length);

                buffer.Position = 0;

                SvcDirectiveParserState target = new InitialState();

                using (var reader = new StreamReader(buffer))
                {
                    do
                    {
                        target = target.Parse(reader);
                    }while (!target.IsFinished);
                }

                Assert.That(target.Directive.Service, Is.EqualTo(expected));
            }
        }
        public void TestParse_LessorThanImmeditely_TransitToStartTagFoundState()
        {
            var target = new InitialState();
            var next   = target.Parse(new StringReader("<"));

            Assert.That(next, Is.TypeOf <StartTagFoundState>());
        }
        /// <summary>
        ///		Parses content as <see cref="ServiceHostDirective"/>.
        /// </summary>
        /// <param name="input"><see cref="TextReader"/> to read the content.</param>
        /// <returns>Parsed <see cref="ServiceHostDirective"/>.</returns>
        public static ServiceHostDirective Parse(TextReader input)
        {
            Contract.Assert(input != null);

            SvcDirectiveParserState state = new InitialState();

            while (!state.IsFinished)
            {
                state = state.Parse(input);
            }

            return(state.Directive);
        }
示例#5
0
		/// <summary>
		///		Parses content as <see cref="ServiceHostDirective"/>.
		/// </summary>
		/// <param name="input"><see cref="TextReader"/> to read the content.</param>
		/// <returns>Parsed <see cref="ServiceHostDirective"/>.</returns>
		public static ServiceHostDirective Parse( TextReader input )
		{
			Contract.Assert( input != null );

			SvcDirectiveParserState state = new InitialState();

			while ( !state.IsFinished )
			{
				state = state.Parse( input );
			}

			return state.Directive;
		}
示例#6
0
		public void TestParse_TrailingWhitespace_ProceedsByOneAndFinallyTransitToStartTagFoundState()
		{
			SvcDirectiveParserState target = new InitialState();
			var reader = new StringReader( " \u3000\t<" );
			for ( int i = 0; i < 4; i++ )
			{
				Assert.That( target.IsFinished, Is.False );
				Assert.That( target, Is.TypeOf<InitialState>() );
				target = target.Parse( reader );
			}

			Assert.That( target, Is.TypeOf<StartTagFoundState>() );
		}
        public void TestParse_TrailingWhitespace_ProceedsByOneAndFinallyTransitToStartTagFoundState()
        {
            SvcDirectiveParserState target = new InitialState();
            var reader = new StringReader(" \u3000\t<");

            for (int i = 0; i < 4; i++)
            {
                Assert.That(target.IsFinished, Is.False);
                Assert.That(target, Is.TypeOf <InitialState>());
                target = target.Parse(reader);
            }

            Assert.That(target, Is.TypeOf <StartTagFoundState>());
        }
		public void TestParse_LineNumberAndPosition()
		{
			SvcDirectiveParserState target = new InitialState();
			var reader = new StringReader( "  \r\n <" );

			Assert.That( target.Position, Is.EqualTo( 0 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 1 ) );

			target = target.Parse( reader );

			Assert.That( target.Position, Is.EqualTo( 1 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 1 ) );

			target = target.Parse( reader );

			Assert.That( target.Position, Is.EqualTo( 2 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 1 ) );

			target = target.Parse( reader );

			Assert.That( target.Position, Is.EqualTo( 3 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 1 ) );

			target = target.Parse( reader );

			Assert.That( target.Position, Is.EqualTo( 0 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 2 ) );

			target = target.Parse( reader );

			Assert.That( target.Position, Is.EqualTo( 1 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 2 ) );

			target = target.Parse( reader );

			Assert.That( target.Position, Is.EqualTo( 2 ) );
			Assert.That( target.LineNumber, Is.EqualTo( 2 ) );
			Assert.That( target, Is.TypeOf<StartTagFoundState>() );
		}
示例#9
0
        public void TestParse_LineNumberAndPosition()
        {
            SvcDirectiveParserState target = new InitialState();
            var reader = new StringReader("  \r\n <");

            Assert.That(target.Position, Is.EqualTo(0));
            Assert.That(target.LineNumber, Is.EqualTo(1));

            target = target.Parse(reader);

            Assert.That(target.Position, Is.EqualTo(1));
            Assert.That(target.LineNumber, Is.EqualTo(1));

            target = target.Parse(reader);

            Assert.That(target.Position, Is.EqualTo(2));
            Assert.That(target.LineNumber, Is.EqualTo(1));

            target = target.Parse(reader);

            Assert.That(target.Position, Is.EqualTo(3));
            Assert.That(target.LineNumber, Is.EqualTo(1));

            target = target.Parse(reader);

            Assert.That(target.Position, Is.EqualTo(0));
            Assert.That(target.LineNumber, Is.EqualTo(2));

            target = target.Parse(reader);

            Assert.That(target.Position, Is.EqualTo(1));
            Assert.That(target.LineNumber, Is.EqualTo(2));

            target = target.Parse(reader);

            Assert.That(target.Position, Is.EqualTo(2));
            Assert.That(target.LineNumber, Is.EqualTo(2));
            Assert.That(target, Is.TypeOf <StartTagFoundState>());
        }
 public StartTagFoundState(InitialState previous) : base(previous)
 {
 }
 public void TestParse_NonWhitespace()
 {
     var target = new InitialState();
     var next   = target.Parse(new StringReader("a"));
 }
示例#12
0
		public StartTagFoundState( InitialState previous ) : base( previous ) { }
示例#13
0
		public void TestParse_NonWhitespace()
		{
			var target = new InitialState();
			var next = target.Parse( new StringReader( "a" ) );
		}
示例#14
0
		public void TestParse_LessorThanImmeditely_TransitToStartTagFoundState()
		{
			var target = new InitialState();
			var next = target.Parse( new StringReader( "<" ) );
			Assert.That( next, Is.TypeOf<StartTagFoundState>() );
		}