Ejemplo n.º 1
0
        public void ReadFromStreamAsyncCallsOnReadFromStreamInTask()
        {
            Type               calledType    = null;
            Stream             calledStream  = null;
            HttpContentHeaders calledHeaders = null;

            SMediaTypeFormatter formatter = new SMediaTypeFormatter()
            {
                CallBase = true
            };

            formatter.OnReadFromStreamTypeStreamHttpContentHeaders = (type, stream, headers) =>
            {
                calledType    = type;
                calledStream  = stream;
                calledHeaders = headers;
                return(5);
            };

            SHttpContent       content        = new SHttpContent();
            HttpContentHeaders contentHeaders = content.Headers;

            Task <object> createdTask =
                StreamAssert.WriteAndReadResult <Task <object> >(
                    (stream) => { },
                    (stream) => formatter.ReadFromStreamAsync(typeof(int), stream, contentHeaders));

            object readObject = TaskAssert.SucceedsWithResult(createdTask);

            Assert.AreEqual(5, readObject, "ReadFromStreamAsync should have returned this value from stub.");
            Assert.AreEqual(typeof(int), calledType, "OnReadFromStreamAsync was not called or did not pass Type.");
            Assert.IsNotNull(calledStream, "OnReadFromStreamAsync was not called or did not pass Type.");
            Assert.AreSame(contentHeaders, calledHeaders, "OnReadFromStreamAsync was not called or did not pass ContentHeaders.");
        }
Ejemplo n.º 2
0
        public void WriteToStreamAsyncCallsOnWriteToStreamInTask()
        {
            Type               calledType    = null;
            object             calledObj     = null;
            Stream             calledStream  = null;
            HttpContentHeaders calledHeaders = null;
            Task               createdTask   = null;

            SMediaTypeFormatter formatter = new SMediaTypeFormatter()
            {
                CallBase = true
            };

            formatter.OnWriteToStreamTypeObjectStreamHttpContentHeadersTransportContext = (type, obj, stream, headers, context) =>
            {
                calledType    = type;
                calledObj     = obj;
                calledStream  = stream;
                calledHeaders = headers;
            };

            SHttpContent       content        = new SHttpContent();
            HttpContentHeaders contentHeaders = content.Headers;

            StreamAssert.WriteAndRead(
                (stream) => createdTask = formatter.WriteToStreamAsync(typeof(int), 5, stream, contentHeaders, /*transportContext*/ null),
                (stream) => { });

            TaskAssert.Succeeds(createdTask);
            Assert.AreEqual(typeof(int), calledType, "OnWriteToStream was not called or did not pass Type.");
            Assert.AreEqual(5, calledObj, "OnWriteToStream was not called or did not pass the object value.");
            Assert.IsNotNull(calledStream, "OnWriteToStream was not called or did not pass Type.");
            Assert.AreSame(contentHeaders, calledHeaders, "OnWriteToStream was not called or did not pass ContentHeaders.");
        }
Ejemplo n.º 3
0
        public void ReadFromStreamAsyncCallsOnReadFromStreamAsync()
        {
            Type               calledType    = null;
            Stream             calledStream  = null;
            HttpContentHeaders calledHeaders = null;

            SMediaTypeFormatter formatter = new SMediaTypeFormatter()
            {
                CallBase = true
            };

            formatter.OnReadFromStreamAsyncTypeStreamHttpContentHeaders = (type, stream, headers) =>
            {
                calledType    = type;
                calledStream  = stream;
                calledHeaders = headers;
                return(null);
            };
            SHttpContent       content        = new SHttpContent();
            HttpContentHeaders contentHeaders = content.Headers;

            StreamAssert.WriteAndRead(
                (stream) => { },
                (stream) => formatter.ReadFromStreamAsync(typeof(int), stream, contentHeaders));

            Assert.AreEqual(typeof(int), calledType, "OnReadFromStreamAsync was not called or did not pass Type.");
            Assert.IsNotNull(calledStream, "OnReadFromStreamAsync was not called or did not pass Type.");
            Assert.AreSame(contentHeaders, calledHeaders, "OnReadFromStreamAsync was not called or did not pass ContentHeaders.");
        }