public async Task UpdateTapeInvalidInputData()
        {
            using (var client = new TestClientProvider().Client)
            {
                var data = await client.GetAsync("/v1/api/tapes");

                string json = await data.Content.ReadAsStringAsync();

                IEnumerable <TapeDTO> tapes = JsonConvert.DeserializeObject <IEnumerable <TapeDTO> >(json);
                var maxId = tapes.Max(u => u.Id);
                var tape  = tapes.FirstOrDefault(u => u.Id == maxId);

                var response = await client.PutAsync($"/v1/api/tapes/{maxId}", new StringContent(
                                                         JsonConvert.SerializeObject(new TapeInputModel()
                {
                    Title = "LOTR",
                }),
                                                         Encoding.UTF8, "application/json"));

                var updateResponse = await client.GetAsync($"/v1/api/tapes/{maxId}");

                string updatedTapeJson = await updateResponse.Content.ReadAsStringAsync();

                TapeDetailDTO updatedTape = JsonConvert.DeserializeObject <TapeDetailDTO>(updatedTapeJson);
                Assert.AreEqual(tape.Title, updatedTape.Title);
            }
        }
        public async Task UpdateTapeValidId()
        {
            using (var client = new TestClientProvider().Client)
            {
                var data = await client.GetAsync("/v1/api/tapes");

                string json = await data.Content.ReadAsStringAsync();

                IEnumerable <TapeDTO> tapes = JsonConvert.DeserializeObject <IEnumerable <TapeDTO> >(json);
                var maxId = tapes.Max(u => u.Id);
                var tape  = tapes.FirstOrDefault(u => u.Id == maxId);

                var response = await client.PutAsync($"/v1/api/tapes/{maxId}", new StringContent(
                                                         JsonConvert.SerializeObject(new TapeInputModel()
                {
                    Title = "Psycho Updated",
                    DirectorFirstName = "Alfred",
                    DirectorLastName = "Hitchcock",
                    Type = "betamax",
                    EIDR = "10.5240/XXXX-XXXX-XXXX-XXXX-XXXX-C",
                    ReleaseDate = "2000-10-10",
                }),
                                                         Encoding.UTF8, "application/json"));

                var updateResponse = await client.GetAsync($"/v1/api/tapes/{maxId}");

                string updatedTapeJson = await updateResponse.Content.ReadAsStringAsync();

                TapeDetailDTO updatedTape = JsonConvert.DeserializeObject <TapeDetailDTO>(updatedTapeJson);
                Assert.AreNotEqual(tape.Title, updatedTape.Title);
            }
        }
        public async Task GetTapeByValidID()
        {
            using (var client = new TestClientProvider().Client)
            {
                var response = await client.GetAsync("/v1/api/tapes/1");

                response.EnsureSuccessStatusCode();
                string data = await response.Content.ReadAsStringAsync();

                TapeDetailDTO tape = JsonConvert.DeserializeObject <TapeDetailDTO>(data);
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
                Assert.AreEqual(1, tape.Id);
            }
        }