public void SerializeDeserializeJson()
        {
            var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage));
            var message    = GetStandardTestMessage(FieldFill.CompleteBeforeBindings);

            var ms     = new MemoryStream();
            var writer = JsonReaderWriterFactory.CreateJsonWriter(ms, Encoding.UTF8);

            MessageSerializer.Serialize(this.MessageDescriptions.GetAccessor(message), writer);
            writer.Flush();

            string actual   = Encoding.UTF8.GetString(ms.ToArray());
            string expected = @"{""age"":15,""Name"":""Andrew"",""Location"":""http:\/\/localtest\/path"",""Timestamp"":""2008-09-19T08:00:00Z""}";

            Assert.AreEqual(expected, actual);

            ms.Position = 0;
            var deserialized = new Mocks.TestDirectedMessage();
            var reader       = JsonReaderWriterFactory.CreateJsonReader(ms, XmlDictionaryReaderQuotas.Max);

            MessageSerializer.Deserialize(this.MessageDescriptions.GetAccessor(deserialized), reader);
            Assert.AreEqual(message.Age, deserialized.Age);
            Assert.AreEqual(message.EmptyMember, deserialized.EmptyMember);
            Assert.AreEqual(message.Location, deserialized.Location);
            Assert.AreEqual(message.Name, deserialized.Name);
            Assert.AreEqual(message.Timestamp, deserialized.Timestamp);
        }
        public void CtorWithProtocolMessage()
        {
            IProtocolMessage  message = new Mocks.TestDirectedMessage();
            ProtocolException ex      = new ProtocolException("message", message);

            Assert.AreSame(message, ex.FaultedMessage);
        }
 public void DeserializeInvalidMessage()
 {
     IProtocolMessage message = new Mocks.TestDirectedMessage();
     var serializer = MessageSerializer.Get(message.GetType());
     var fields = GetStandardTestFields(FieldFill.AllRequired);
     fields["age"] = "-1"; // Set an disallowed value.
     serializer.Deserialize(fields, this.MessageDescriptions.GetAccessor(message));
 }
		public async Task DirectRequestsUsePost() {
			IDirectedProtocolMessage requestMessage = new Mocks.TestDirectedMessage(MessageTransport.Direct) {
				Recipient = new Uri("http://host"),
				Name = "Andrew",
			};
			var httpRequest = this.channel.CreateHttpRequestTestHook(requestMessage);
			Assert.AreEqual(HttpMethod.Post, httpRequest.Method);
			StringAssert.Contains("Name=Andrew", await httpRequest.Content.ReadAsStringAsync());
		}
		public void DirectRequestsUsePost() {
			IDirectedProtocolMessage requestMessage = new Mocks.TestDirectedMessage(MessageTransport.Direct) {
				Recipient = new Uri("http://host"),
				Name = "Andrew",
			};
			HttpWebRequest httpRequest = this.channel.CreateHttpRequestTestHook(requestMessage);
			Assert.AreEqual("POST", httpRequest.Method);
			StringAssert.Contains("Name=Andrew", this.webHandler.RequestEntityAsString);
		}
        public void DeserializeInvalidMessage()
        {
            IProtocolMessage message = new Mocks.TestDirectedMessage();
            var serializer           = MessageSerializer.Get(message.GetType());
            var fields = GetStandardTestFields(FieldFill.AllRequired);

            fields["age"] = "-1";             // Set an disallowed value.
            serializer.Deserialize(fields, this.MessageDescriptions.GetAccessor(message));
        }
Beispiel #7
0
        public async Task DirectRequestsUsePost()
        {
            IDirectedProtocolMessage requestMessage = new Mocks.TestDirectedMessage(MessageTransport.Direct)
            {
                Recipient = new Uri("http://host"),
                Name      = "Andrew",
            };
            var httpRequest = this.channel.CreateHttpRequestTestHook(requestMessage);

            Assert.AreEqual(HttpMethod.Post, httpRequest.Method);
            StringAssert.Contains("Name=Andrew", await httpRequest.Content.ReadAsStringAsync());
        }
Beispiel #8
0
        public void DirectRequestsUsePost()
        {
            IDirectedProtocolMessage requestMessage = new Mocks.TestDirectedMessage(MessageTransport.Direct)
            {
                Recipient = new Uri("http://host"),
                Name      = "Andrew",
            };
            HttpWebRequest httpRequest = this.channel.CreateHttpRequestTestHook(requestMessage);

            Assert.AreEqual("POST", httpRequest.Method);
            StringAssert.Contains("Name=Andrew", this.webHandler.RequestEntityAsString);
        }
		public void DeserializeSimple() {
			var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage));
			Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
			fields["Name"] = "Andrew";
			fields["age"] = "15";
			fields["Timestamp"] = "1990-01-01T00:00:00";
			var actual = new Mocks.TestDirectedMessage();
			serializer.Deserialize(fields, this.MessageDescriptions.GetAccessor(actual));
			Assert.AreEqual(15, actual.Age);
			Assert.AreEqual("Andrew", actual.Name);
			Assert.AreEqual(DateTime.Parse("1/1/1990"), actual.Timestamp);
			Assert.IsNull(actual.EmptyMember);
		}
        public async Task BadRequestsGenerateValidErrorResponses()
        {
            this.RegisterAutoProvider();
            var rp = this.CreateRelyingParty();
            var nonOpenIdMessage = new Mocks.TestDirectedMessage {
                Recipient   = OPUri,
                HttpMethods = HttpDeliveryMethods.PostRequest
            };

            MessagingTestBase.GetStandardTestMessage(MessagingTestBase.FieldFill.AllRequired, nonOpenIdMessage);
            var response = await rp.Channel.RequestAsync <DirectErrorResponse>(nonOpenIdMessage, CancellationToken.None);

            Assert.IsNotNull(response.ErrorMessage);
            Assert.AreEqual(Protocol.Default.Version, response.Version);
        }
Beispiel #11
0
        public void BadRequestsGenerateValidErrorResponses()
        {
            var coordinator = new OpenIdCoordinator(
                rp => {
                var nonOpenIdMessage         = new Mocks.TestDirectedMessage();
                nonOpenIdMessage.Recipient   = OPUri;
                nonOpenIdMessage.HttpMethods = HttpDeliveryMethods.PostRequest;
                MessagingTestBase.GetStandardTestMessage(MessagingTestBase.FieldFill.AllRequired, nonOpenIdMessage);
                var response = rp.Channel.Request <DirectErrorResponse>(nonOpenIdMessage);
                Assert.IsNotNull(response.ErrorMessage);
                Assert.AreEqual(Protocol.Default.Version, response.Version);
            },
                AutoProvider);

            coordinator.Run();
        }
        public void BadRequestsGenerateValidErrorResponses()
        {
            var coordinator = new OpenIdCoordinator(
                rp => {
                    var nonOpenIdMessage = new Mocks.TestDirectedMessage();
                    nonOpenIdMessage.Recipient = OPUri;
                    nonOpenIdMessage.HttpMethods = HttpDeliveryMethods.PostRequest;
                    MessagingTestBase.GetStandardTestMessage(MessagingTestBase.FieldFill.AllRequired, nonOpenIdMessage);
                    var response = rp.Channel.Request<DirectErrorResponse>(nonOpenIdMessage);
                    Assert.IsNotNull(response.ErrorMessage);
                    Assert.AreEqual(Protocol.Default.Version, response.Version);
                },
                AutoProvider);

            coordinator.Run();
        }
Beispiel #13
0
        public void DeserializeSimple()
        {
            var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage));
            Dictionary <string, string> fields = new Dictionary <string, string>(StringComparer.Ordinal);

            fields["Name"]      = "Andrew";
            fields["age"]       = "15";
            fields["Timestamp"] = "1990-01-01T00:00:00";
            var actual = new Mocks.TestDirectedMessage();

            serializer.Deserialize(fields, this.MessageDescriptions.GetAccessor(actual));
            Assert.AreEqual(15, actual.Age);
            Assert.AreEqual("Andrew", actual.Name);
            Assert.AreEqual(DateTime.Parse("1/1/1990"), actual.Timestamp);
            Assert.IsNull(actual.EmptyMember);
        }
Beispiel #14
0
 public void BadRequestsGenerateValidErrorResponsesHosted()
 {
     try {
         using (AspNetHost host = AspNetHost.CreateHost(TestWebDirectory)) {
             Uri opEndpoint       = new Uri(host.BaseUri, "/OpenIdProviderEndpoint.ashx");
             var rp               = new OpenIdRelyingParty(null);
             var nonOpenIdMessage = new Mocks.TestDirectedMessage();
             nonOpenIdMessage.Recipient   = opEndpoint;
             nonOpenIdMessage.HttpMethods = HttpDeliveryMethods.PostRequest;
             MessagingTestBase.GetStandardTestMessage(MessagingTestBase.FieldFill.AllRequired, nonOpenIdMessage);
             var response = rp.Channel.Request <DirectErrorResponse>(nonOpenIdMessage);
             Assert.IsNotNull(response.ErrorMessage);
         }
     } catch (FileNotFoundException ex) {
         Assert.Inconclusive("Unable to execute hosted ASP.NET tests because {0} could not be found.  {1}", ex.FileName, ex.FusionLog);
     }
 }
 public void BadRequestsGenerateValidErrorResponsesHosted()
 {
     try {
         using (AspNetHost host = AspNetHost.CreateHost(TestWebDirectory)) {
             Uri opEndpoint = new Uri(host.BaseUri, "/OpenIdProviderEndpoint.ashx");
             var rp = new OpenIdRelyingParty(null);
             var nonOpenIdMessage = new Mocks.TestDirectedMessage();
             nonOpenIdMessage.Recipient = opEndpoint;
             nonOpenIdMessage.HttpMethods = HttpDeliveryMethods.PostRequest;
             MessagingTestBase.GetStandardTestMessage(MessagingTestBase.FieldFill.AllRequired, nonOpenIdMessage);
             var response = rp.Channel.Request<DirectErrorResponse>(nonOpenIdMessage);
             Assert.IsNotNull(response.ErrorMessage);
         }
     } catch (FileNotFoundException ex) {
         Assert.Inconclusive("Unable to execute hosted ASP.NET tests because {0} could not be found.  {1}", ex.FileName, ex.FusionLog);
     }
 }
Beispiel #16
0
        public void DeserializeWithExtraFields()
        {
            var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage));
            Dictionary <string, string> fields = new Dictionary <string, string>(StringComparer.Ordinal);

            fields["age"]       = "15";
            fields["Name"]      = "Andrew";
            fields["Timestamp"] = XmlConvert.ToString(DateTime.UtcNow, XmlDateTimeSerializationMode.Utc);
            // Add some field that is not recognized by the class.  This simulates a querystring with
            // more parameters than are actually interesting to the protocol message.
            fields["someExtraField"] = "asdf";
            var actual = new Mocks.TestDirectedMessage();

            serializer.Deserialize(fields, this.MessageDescriptions.GetAccessor(actual));
            Assert.AreEqual(15, actual.Age);
            Assert.AreEqual("Andrew", actual.Name);
            Assert.IsNull(actual.EmptyMember);
        }
		public void SerializeDeserializeJson() {
			var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage));
			var message = GetStandardTestMessage(FieldFill.CompleteBeforeBindings);

			var ms = new MemoryStream();
			var writer = JsonReaderWriterFactory.CreateJsonWriter(ms, Encoding.UTF8);
			MessageSerializer.Serialize(this.MessageDescriptions.GetAccessor(message), writer);
			writer.Flush();

			string actual = Encoding.UTF8.GetString(ms.ToArray());
			string expected = @"{""age"":15,""Name"":""Andrew"",""Location"":""http:\/\/localtest\/path"",""Timestamp"":""2008-09-19T08:00:00Z""}";
			Assert.AreEqual(expected, actual);

			ms.Position = 0;
			var deserialized = new Mocks.TestDirectedMessage();
			var reader = JsonReaderWriterFactory.CreateJsonReader(ms, XmlDictionaryReaderQuotas.Max);
			MessageSerializer.Deserialize(this.MessageDescriptions.GetAccessor(deserialized), reader);
			Assert.AreEqual(message.Age, deserialized.Age);
			Assert.AreEqual(message.EmptyMember, deserialized.EmptyMember);
			Assert.AreEqual(message.Location, deserialized.Location);
			Assert.AreEqual(message.Name, deserialized.Name);
			Assert.AreEqual(message.Timestamp, deserialized.Timestamp);
		}
		public void CtorWithProtocolMessage() {
			IProtocolMessage message = new Mocks.TestDirectedMessage();
			ProtocolException ex = new ProtocolException("message", message);
			Assert.AreSame(message, ex.FaultedMessage);
		}
		public void DeserializeWithExtraFields() {
			var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage));
			Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
			fields["age"] = "15";
			fields["Name"] = "Andrew";
			fields["Timestamp"] = XmlConvert.ToString(DateTime.UtcNow, XmlDateTimeSerializationMode.Utc);
			// Add some field that is not recognized by the class.  This simulates a querystring with
			// more parameters than are actually interesting to the protocol message.
			fields["someExtraField"] = "asdf";
			var actual = new Mocks.TestDirectedMessage();
			serializer.Deserialize(fields, this.MessageDescriptions.GetAccessor(actual));
			Assert.AreEqual(15, actual.Age);
			Assert.AreEqual("Andrew", actual.Name);
			Assert.IsNull(actual.EmptyMember);
		}
		public async Task BadRequestsGenerateValidErrorResponses() {
			this.RegisterAutoProvider();
			var rp = this.CreateRelyingParty();
			var nonOpenIdMessage = new Mocks.TestDirectedMessage {
				Recipient = OPUri,
				HttpMethods = HttpDeliveryMethods.PostRequest
			};
			MessagingTestBase.GetStandardTestMessage(MessagingTestBase.FieldFill.AllRequired, nonOpenIdMessage);
			var response = await rp.Channel.RequestAsync<DirectErrorResponse>(nonOpenIdMessage, CancellationToken.None);
			Assert.IsNotNull(response.ErrorMessage);
			Assert.AreEqual(Protocol.Default.Version, response.Version);
		}