public void ToRequestMessage_RecordWithWrongHeader_ThrowsArgumentException()
        {
            var record = new CassetteRecordRequest("GET", new Uri("http://localhost:5000/api/users/1"), new NameValueCollection(), "text");

            record.Headers.Add("Does-It-A-Valid-Header?", "No");

            Assert.Throws <ArgumentException>(() => record.ToRequestMessage());
        }
        public void ToRequestMessage_RecordWithoutBody()
        {
            var record = new CassetteRecordRequest("GET", new Uri("http://localhost:5000/api/users/1"), new NameValueCollection());

            var message = record.ToRequestMessage();

            Assert.That(message.Method, Is.EqualTo(HttpMethod.Get));
            Assert.That(message.RequestUri, Is.EqualTo(record.Uri));
            Assert.That(message.Headers.Count(), Is.EqualTo(0));
            Assert.That(message.Content, Is.Null);
        }
        public async Task ToRequestMessage_RecordWithBody()
        {
            var record = new CassetteRecordRequest("GET", new Uri("http://localhost:5000/api/users/1"), new NameValueCollection(), "text");

            record.Headers.Add("Content-Type", "text/plain; charset=utf-8");

            var message = record.ToRequestMessage();

            Assert.That(message.Method, Is.EqualTo(HttpMethod.Get));
            Assert.That(message.RequestUri, Is.EqualTo(record.Uri));
            Assert.That(message.Headers.Count(), Is.EqualTo(0));
            Assert.That(message.Content, Is.TypeOf <StringContent>());
            Assert.That(await message.Content.ReadAsStringAsync(), Is.EqualTo("text"));
            Assert.That(message.Content.Headers.ContentType.MediaType, Is.EqualTo("text/plain"));
            Assert.That(message.Content.Headers.ContentType.CharSet, Is.EqualTo("utf-8"));
        }