using System; using NUnit.Framework; using ServiceStack.ServiceClient.Web; namespace ServiceStack.WebHost.Endpoints.Tests.Support { public abstract class ServiceClientTestBase : IDisposable { private const string BaseUrl = "http://127.0.0.1:8083/"; private AppHostHttpListenerBase appHost; public abstract AppHostHttpListenerBase CreateListener(); [TestFixtureSetUp] public virtual void TestFixtureSetUp() { appHost = CreateListener(); appHost.Init(); appHost.Start(BaseUrl); } [TestFixtureTearDown] public void OnTestFixtureTearDown() { Dispose(); } public void Dispose() { if (appHost == null) return; appHost.Dispose(); appHost = null; } public void Send(object request, Action validate) { using (var xmlClient = new XmlServiceClient(BaseUrl)) using (var jsonClient = new JsonServiceClient(BaseUrl)) using (var jsvClient = new JsvServiceClient(BaseUrl)) { var xmlResponse = xmlClient.Send(request); validate(xmlResponse); var jsonResponse = jsonClient.Send(request); validate(jsonResponse); var jsvResponse = jsvClient.Send(request); validate(jsvResponse); } } } }