示例#1
0
        public void CanDeleteAndGetResultWithAccept()
        {
            // Act
            string text = DossierReq.Accept <string>().Delete().Body;

            // Assert
            Assert.AreEqual("Deleted, yup!", text);
        }
示例#2
0
        public void CanPutAndGetResultWithAccept()
        {
            // Act
            Dossier newDossier = DossierReq.Accept <Dossier>().Put(MyDossier).Body;

            // Assert
            Assert.IsNotNull(newDossier);
        }
示例#3
0
 public void CanDeleteAndGetResultWithAccept()
 {
     // Act
     using (var r = DossierReq.Accept <string>().Delete())
     {
         // Assert
         Assert.AreEqual("Deleted, yup!", r.Body);
     }
 }
示例#4
0
 public void CanPutAndGetResultWithAccept()
 {
     // Act
     using (var newDossier = DossierReq.Accept <Dossier>().Put(MyDossier))
     {
         // Assert
         Assert.IsNotNull(newDossier.Body);
     }
 }
示例#5
0
        public override void DoGet(Request request)
        {
            // Accept the request to promise the client this request will be acted.
            request.Accept();

            // ... and then do nothing. Pretty mean...
        }
        public void CanPostSimpleMultipartFormDataWithEncoding(
            [Values("UTF-8", "iso-8859-1")] string charsetIn,
            [Values("UTF-8", "iso-8859-1")] string charsetOut)
        {
            // Arrange
            MultipartData data = new MultipartData {
                Name = "ÆØÅüî", Age = 10, Active = true
            };
            Request formdataReq = Session.Bind(MultipartFormDataTemplate);

            // NOTE: I haven't found a way to test what encoding it actually uses for the post data,
            // so that must be inspected using Fiddler :-(

            // Act
            using (Response <string> response = formdataReq.Accept("text/plain")
                                                .AcceptCharset(charsetOut)
                                                .CodecParameter("Charset", charsetIn)
                                                .ContentType("multipart/form-data")
                                                .Post <string>(data))
            {
                // Assert
                Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data"));
                Assert.AreEqual(charsetOut, response.Headers["x-accept-charset"]);
                Assert.AreEqual("ÆØÅüî-10-True", response.Body);
            }
        }
示例#7
0
        public void RequestMessageConsistencyTest()
        {
            var original = new Request()
            {
                Id   = Guid.NewGuid(),
                Data = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD }
            };

            // Serializing
            var serializer = new MessageSerializingVisitor();

            original.Accept(serializer);
            var serializedData = serializer.Result;

            Assert.NotNull(serializedData);
            Assert.True(serializedData.Length > 0);

            // Deserializing
            var deserializer = new MessageDeserializingVisitor()
            {
                DataBuffer   = serializedData,
                DataLength   = serializedData.Length,
                BufferOffset = 0
            };
            var reconstructedMessage = new Request();

            reconstructedMessage.Accept(deserializer);

            Assert.AreEqual(original.Id, reconstructedMessage.Id);
            Assert.AreEqual(original.Data, reconstructedMessage.Data);
        }
示例#8
0
        private void AcceptRequest(Request request, DateTimeOffset acceptTime, int userId, int?impersonatorId, InterpreterBroker interpreter, InterpreterLocation interpreterLocation, CompetenceAndSpecialistLevel competenceLevel, List <OrderRequirementRequestAnswer> requirementAnswers, List <RequestAttachment> attachedFiles, decimal?expectedTravelCosts, string expectedTravelCostInfo, VerificationResult?verificationResult, DateTimeOffset?latestAnswerTimeForCustomer, string brokerReferenceNumber, bool overrideRequireAccept = false)
        {
            NullCheckHelper.ArgumentCheckNull(request, nameof(AcceptRequest), nameof(RequestService));
            //Get prices
            var prices = _priceCalculationService.GetPrices(request, competenceLevel, expectedTravelCosts);

            request.Accept(acceptTime, userId, impersonatorId, interpreter, interpreterLocation, competenceLevel, requirementAnswers, attachedFiles, prices, expectedTravelCostInfo, latestAnswerTimeForCustomer, brokerReferenceNumber, verificationResult, overrideRequireAccept);
        }
示例#9
0
 public void CanDoOptionsWithReturnedBody()
 {
     // Act
     using (Response <string> response1 = DossierReq.Options <string>())
         using (Response <string> response2 = DossierReq.Accept <string>().Options())
             using (Response response3 = DossierReq.Accept("text/plain").Options())
             {
                 // Assert
                 Assert.IsNotNull(response1);
                 Assert.IsNotNull(response2);
                 Assert.IsNotNull(response3);
                 Assert.AreEqual("2", response1.Headers["X-ExtraHeader"]);
                 Assert.AreEqual("2", response2.Headers["X-ExtraHeader"]);
                 Assert.AreEqual("2", response3.Headers["X-ExtraHeader"]);
                 Assert.AreEqual("Yes", response1.Body);
                 Assert.AreEqual("Yes", response2.Body);
                 Assert.AreEqual("Yes", response3.Decode <string>());
             }
 }
        public void CanGetCatAsTextWithShorthandNotation()
        {
            // Arrange
            Request catReq = Session.Bind(CatTemplate, new { name = "Fiona" });

            // Act
            Cat c = catReq.Accept("text/plain").Get <Cat>().Body;

            // Assert
            Assert.AreEqual("Fiona", c.Name);
        }
        public void CanGetCatAsHtml()
        {
            // Arrange
            Request catReq = Session.Bind(CatTemplate, new { name = "Fiona" });

            // Act
            Cat c = catReq.Accept("text/html").Get <Cat>().Body;

            // Assert
            Assert.AreEqual("<html><body><p>Fiona</p></body></html>", c.Name);
        }
        public void CanSpecifyAcceptAsGenericWithMediaType()
        {
            // Arrange
            Request catReq = Session.Bind(CatTemplate, new { name = "Fiona" });

            // Act
            Cat c = catReq.Accept <Cat>("text/plain").Get().Body;

            // Assert
            Assert.IsNotNull(c);
        }
        public void CanSpecifyAcceptAsGenericWithoutMediaType()
        {
            // Arrange
            Request dossierReq = Session.Bind(DossierTemplate, new { id = 8 });

            // Act
            Dossier dossier = dossierReq.Accept <Dossier>().Get().Body;

            // Assert
            Assert.IsNotNull(dossier);
        }
示例#14
0
        public void CanPostEmptyBody_Untyped()
        {
            // Arrange
            Request request = Session.Bind(AnyEchoTemplate);

            // Act
            Response response = request.Accept("text/plain").ContentType("application/octet-stream").Post();

            // Assert
            Assert.AreEqual(null, response.Body);
        }
示例#15
0
        public void CanPutEmptyBody_Untyped()
        {
            // Arrange
            Request request = Session.Bind(AnyEchoTemplate);

            // Act
            Response response = request.Accept("text/plain").ContentType("application/x-www-url-formencoded").Put();

            // Assert
            Assert.AreEqual(null, response.Body);
        }
示例#16
0
        public void TestCache()
        {
            HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate);

            Session.CachePolicy = policy;

            Request req = new Request(Session, new Uri("http://www.dr.dk/drfront/images//2013/05/21/c=0,17,1024,505;w=300;42676.jpg"));

            using (var resp = req.Accept("image/jpeg").Get <byte[]>())
            {
                resp.SaveToFile("c:\\tmp\\scrap.jpg");
                Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
            }

            using (var resp = req.Accept("image/jpeg").Get <byte[]>())
            {
                resp.SaveToFile("c:\\tmp\\scrap.jpg");
                Assert.AreEqual(HttpStatusCode.NotModified, resp.StatusCode);
            }
        }
示例#17
0
        public void CanPostUnregisteredType()
        {
            UnregisteredClass data = new UnregisteredClass {
                Text = "Hello"
            };
            Request request = Session.Bind(XmlEchoTemplate);

            Response <UnregisteredClass> response = request.Accept("application/xml").ContentType("application/xml").Post <UnregisteredClass>(data);

            Assert.AreEqual(data.Text, response.Body.Text);
        }
示例#18
0
        public void CanPostEmptyBody_Typed()
        {
            // Arrange
            Request request = Session.Bind(AnyEchoTemplate);

            // Act
            using (Response <string> response = request.Accept("text/plain").ContentType("application/octet-stream").Post <string>())
            {
                // Assert
                Assert.IsNull(response.Body);
            }
        }
示例#19
0
        public void CanDoOptionsWithBody()
        {
            // Arrange
            Request dossierReq = Session.Bind(DossierTemplate, new { id = 8 });

            // Act
            Response <string> response1 = dossierReq.Options <string>();
            Response <string> response2 = dossierReq.Accept <string>().Options();
            Response          response3 = dossierReq.Accept("text/plain").Options();

            // Assert
            Assert.IsNotNull(response1);
            Assert.IsNotNull(response2);
            Assert.IsNotNull(response3);
            Assert.AreEqual("2", response1.Headers["X-ExtraHeader"]);
            Assert.AreEqual("2", response2.Headers["X-ExtraHeader"]);
            Assert.AreEqual("2", response3.Headers["X-ExtraHeader"]);
            Assert.AreEqual("Yes", response1.Body);
            Assert.AreEqual("Yes", response2.Body);
            Assert.AreEqual("Yes", response3.Decode <string>());
        }
        public void CanGetCatAsText()
        {
            // Arrange
            Request catReq = Session.Bind(CatTemplate, new { name = "Fiona" });

            // Act
            using (var c = catReq.Accept("text/plain").Get <Cat>())
            {
                // Assert
                Assert.AreEqual("Fiona", c.Body.Name);
            }
        }
示例#21
0
        public void CanGetStringFromOctetStream()
        {
            // Arrange
            Session.DefaultEncoding = Encoding.UTF8;
            Request stringReq = Session.Bind(FileTemplate);

            // Act
            string s = stringReq.Accept("application/octet-stream").Get <string>().Body;

            // Assert
            Assert.AreEqual("Hello ÆØÅ", s);
        }
        public void CanReadJson()
        {
            // Arrange
            Request req = Session.Bind(CatTemplate, new { name = "Ramstein" });

            // Act
            Cat cat = req.Accept("application/json").Get <Cat>().Body;

            // Assert
            Assert.IsNotNull(cat);
            Assert.AreEqual("Ramstein", cat.Name);
        }
示例#23
0
        public void CanPutEmptyBody_Typed()
        {
            // Arrange
            Request request = Session.Bind(AnyEchoTemplate);

            // Act
            using (Response <string> response = request.Accept("text/plain").ContentType("application/x-www-url-formencoded").Put <string>())
            {
                // Assert
                Assert.IsNull(response.Body);
            }
        }
        public void CanPostUnregisteredFormUrlEncodedUsingShorthand()
        {
            // Arrange
            var     data        = new { Name = "Pete", Age = 10 }; // Matches "MultipartData" class
            Request formdataReq = Session.Bind(MultipartFormDataTemplate);

            // Act
            Response <string> response = formdataReq.Accept("text/plain").AsFormUrlEncoded().Post <string>(data);

            // Assert
            Assert.AreEqual("application/x-www-form-urlencoded", response.Headers["x-contenttype"]);
            Assert.AreEqual("Pete-10", response.Body);
        }
        public void CanPostSMultipartFormDataFromAnonymousTypes()
        {
            // Arrange
            var     data        = new { Name = "Pete", Age = 10 };
            Request formdataReq = Session.Bind(MultipartFormDataTemplate);

            // Act
            Response <string> response = formdataReq.Accept("text/plain").ContentType("multipart/form-data").Post <string>(data);

            // Assert
            Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data"));
            Assert.AreEqual("Pete-10", response.Body);
        }
示例#26
0
        public void CanPostComplexClass()
        {
            // Arrange
            Guid g = Guid.NewGuid();
            ComplexClassForOpenRastaSerializationTests o = new ComplexClassForOpenRastaSerializationTests
            {
                X        = 15,
                Y        = "Abc",
                IntArray = new List <int> {
                    1, 2
                },
                SubC = new ComplexClassForOpenRastaSerializationTests.SubClass
                {
                    SubC = new ComplexClassForOpenRastaSerializationTests.SubClass
                    {
                        Data = new List <string> {
                            "Benny"
                        }
                    },
                    Data = new List <string> {
                        "Brian"
                    }
                },
                Dict = new Dictionary <string, string>(),
                Date = new DateTime(2012, 10, 30, 12, 13, 14),
                Dou  = 15.234,
                GID  = g
            };

            o.Dict["abc"] = "123";
            o.Dict["qwe"] = "xyz";

            Session.SerializerSettings = new ObjectSerializerSettings
            {
                ArrayFormat      = "{0}:{1}",
                DictionaryFormat = "{0}:{1}",
                PropertyFormat   = "{0}.{1}"
            };

            Request request = Session.Bind(ComplexClassTemplate);

            // Act
            using (Response <string> response = request.Accept("text/plain")
                                                .AsMultipartFormData()
                                                .Post <string>(o))
            {
                // Assert
                Console.WriteLine(response.Body);
                Assert.AreEqual("|X=15|Y=Abc|IntArray[0]=1|IntArray[1]=2|SubC.SubC.Data[0]=Benny|SubC.Data[0]=Brian|Dict[abc]=123|Dict[qwe]=xyz|Date=2012-10-30T12:13:14|Dou=15.234|GID=" + g.ToString(), response.Body);
            }
        }
        public void CanReadTyped()
        {
            // Arrange
            Request request = Session.Bind(FormUrlEncodedTemplate, new { mode = "x" });

            // Act
            Response <FormUrlEncodedData> response = request.Accept("application/x-www-form-urlencoded")
                                                     .Get <FormUrlEncodedData>();
            FormUrlEncodedData data = response.Body;

            // Assert
            Assert.AreEqual("Abc", data.Title);
            Assert.AreEqual(15, data.Age);
        }
        public void CanReadJsonAsDynamic()
        {
            // Arrange
            Request req = Session.Bind(CatTemplate, new { name = "Ramstein" });

            // Act
            using (var r = req.Accept("application/json").Get())
            {
                dynamic cat = r.Body;

                // Assert
                Assert.IsNotNull(cat);
                Assert.AreEqual("Ramstein", cat.Name);
            }
        }
        public void CanPostSimpleMultipartFormDataUsingShorthand()
        {
            // Arrange
            MultipartData data = new MultipartData {
                Name = "Pete", Age = 10
            };
            Request formdataReq = Session.Bind(MultipartFormDataTemplate);

            // Act
            Response <string> response = formdataReq.Accept("text/plain").AsMultipartFormData().Post <string>(data);

            // Assert
            Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data"));
            Assert.AreEqual("Pete-10", response.Body);
        }
        public void CanGetCatAsRawXml()
        {
            // Arrange
            Request catReq = Session.Bind(CatTemplate, new { name = "Fiona" });

            // Act
            XmlDocument c = catReq.Accept("application/xml").Get <XmlDocument>().Body;

            // Assert
            Assert.IsNotNull(c);
            XmlNode nameNode = c.SelectSingleNode("//Cat/Name");

            Assert.IsNotNull(nameNode);
            Assert.AreEqual("Fiona", nameNode.InnerText);
        }