Files
wgenerator/API/API.Client.Test/OdataTests.cs
Benjamin Ifland bbe9f33571 creating oData client
testing odata interface
2019-03-17 17:32:25 +01:00

94 lines
2.6 KiB
C#

using System;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using API.Models;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Simple.OData.Client;
namespace API.Client.Test {
[TestClass]
public class OdataTests {
private const string TEST_CASE_IDENTIFIER = "TESTCASE";
private static Song testSong;
[ClassInitialize]
public static async Task TestInitialize(TestContext tc) {
var client = new Client();
var newSong = new Song {
Name = Guid.NewGuid().ToString(),
Text = TEST_CASE_IDENTIFIER
};
testSong = await client.Post(newSong);
}
[ClassCleanup]
public static async Task ClassCleanup() {
var client = new Client();
var itemsToDelete = await client.Get(_ => _.Text == TEST_CASE_IDENTIFIER);
foreach (var item in itemsToDelete) {
await client.Delete(item.ID);
}
}
[TestMethod]
public async Task GetList() {
var client = new Client();
var data = await client.Get();
Assert.IsTrue(data.Any(_=>_.ID == testSong.ID));
}
[TestMethod]
public async Task GetItem() {
var client = new Client();
var item = await client.Get(testSong.ID);
Assert.AreEqual(testSong.Name, item.Name);
}
[TestMethod]
public async Task PostItem() {
var client = new Client();
var newSong = new Song {
Name = Guid.NewGuid().ToString(),
Text = TEST_CASE_IDENTIFIER
};
var response = await client.Post(newSong);
var insertedSong = await client.Get(response.ID);
Assert.AreEqual(newSong.Name, insertedSong.Name);
}
[TestMethod]
public async Task DeleteItem() {
var client = new Client();
var newSong = new Song {
Name = Guid.NewGuid().ToString(),
Text = TEST_CASE_IDENTIFIER
};
var response = await client.Post(newSong);
var insertedSong = await client.Get(response.ID);
Assert.AreEqual(newSong.Name, insertedSong.Name);
var count = await client.Delete(response.ID);
Assert.AreEqual(1, count);
try {
await client.Get(response.ID);
Assert.Fail("WebRequestException not thrown");
} catch (WebRequestException ex) {
Assert.AreEqual(HttpStatusCode.NotFound, ex.Code);
}
}
}
}