// private readonly HttpClient _httpClient = new HttpClient(); static async System.Threading.Tasks.Task Main(string[] args) { var client = new MountebankClient(); var imposter = client.CreateHttpImposter(8070); var usdcoin = new Coin { Key = "usd", Rate = 22.22m }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, usdcoin).OnPathAndMethodEqual($"/rate/{usdcoin.Key}", Method.Get); var rubcoin = new Coin { Key = "rub", Rate = 5.22m }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, rubcoin).OnPathAndMethodEqual($"/rate/{rubcoin.Key}", Method.Get); var eurcoin = new Coin { Key = "eur", Rate = 25.22m }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, eurcoin).OnPathAndMethodEqual($"/rate/{eurcoin.Key}", Method.Get); imposter.AddStub().ReturnsStatus(HttpStatusCode.BadRequest); client.Submit(imposter); await GetRequest("usd"); await GetRequest("rub"); await GetRequest("eur"); await GetRequest("yuan"); client.DeleteAllImposters(); }
public void MakeTranslateApi() { var mounteBankClient = new MountebankClient(Environment.GetEnvironmentVariable("MOUNTEBANK_HOST")); var uri = new Uri(Environment.GetEnvironmentVariable("TRANSLATE_API_HOST")); var translateApiPort = uri.Port; var imposter = mounteBankClient.CreateHttpImposter(translateApiPort); var transelationResponse = new { success = new { total = 1 }, contents = new { translated = "Its nature is to store up electricity. Forests\\nwhere aeries of pikachu liveth art dangerous, \\nsince the trees art so oft did strike by lightning.", text = "Its nature is to store up electricity. Forests\\nwhere nests of Pikachu live are dangerous,\\nsince the trees are so often struck by lightning.", translation = "shakespeare" } }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, transelationResponse) .OnPathAndMethodEqual("/translate/shakespeare.json", Method.Post); mounteBankClient.Submit(imposter); }
private static async Task Main() { var client = new MountebankClient(); var imposter = client.CreateHttpImposter(7777); var usd = new TestObj { Key = "usd", Rate = 36.96 }; var euro = new TestObj { Key = "eur", Rate = 44.88 }; var yen = new TestObj { Key = "yen", Rate = 1.36 }; imposter.AddStub().ReturnsJson(OK, usd) .OnPathAndMethodEqual($"/rate/{usd.Key}", Method.Get); imposter.AddStub().ReturnsJson(OK, euro) .OnPathAndMethodEqual($"/rate/{euro.Key}", Method.Get); imposter.AddStub().ReturnsJson(OK, yen) .OnPathAndMethodEqual($"/rate/{yen.Key}", Method.Get); imposter.AddStub().ReturnsStatus(BadRequest); client.Submit(imposter); await Request("usd"); await Request("eur"); await Request("yen"); await Request("rub"); client.DeleteAllImposters(); }
public static HttpImposter CreateOrReplaceHttpImposter(this MountebankClient client, int port, string name = null, bool recordRequests = false) { client.DeleteImposter(port); return(client.CreateHttpImposter(port, name, recordRequests)); }
public async Task CreateBankServiceImposterAsync(string responseBody) { await TearDownBankService(); var imposter = _mountebankClient.CreateHttpImposter(this.BankServiceUri.Port, "Bank Service Imposter"); imposter.AddStub().OnPathAndMethodEqual("/payments", Method.Post) .ReturnsBody(HttpStatusCode.OK, responseBody); await Task.Run(() => _mountebankClient.Submit(imposter)); }
public void MakePokemonApi(string pokemonName) { var mounteBankClient = new MountebankClient(Environment.GetEnvironmentVariable("MOUNTEBANK_HOST")); var uri = new Uri(Environment.GetEnvironmentVariable("POKEMON_API_HOST")); var pokemonApiPort = uri.Port; var imposter = mounteBankClient.CreateHttpImposter(pokemonApiPort); var pokemonDetailResponse = GeneratePokemonSpeciesDetailsResponseBody(); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, pokemonDetailResponse).OnPathEquals($"/api/v2/pokemon-species/{pokemonName}"); mounteBankClient.Submit(imposter); }
public MountebankTests() { _httpClient = new HttpClient { BaseAddress = _localhostUri }; _mountebankClient = new MountebankClient(); _mountebankClient.DeleteAllImposters(); _imposter = _mountebankClient.CreateHttpImposter(_port); }
public void Setup() { var client = new MountebankClient(); const int port = 8080; client.DeleteImposter(port); var imposter = client.CreateHttpImposter(port); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, 72.4).OnPathAndMethodEqual($"/rate/usd", Method.Get); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, 89.9).OnPathAndMethodEqual($"/rate/eur", Method.Get); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, 1).OnPathAndMethodEqual($"/rate/rub", Method.Get); imposter.AddStub().ReturnsStatus(HttpStatusCode.BadRequest); client.Submit(imposter); }
public static void AddRecordedCommand(VirtSqlRpcModel model) { _recordedCommands.AddOrUpdate(model.StoredProcName, s => new List <VirtSqlRpcModel> { model }, (s, list) => { list.Add(model); return(list); }); var mountebankClient = new MountebankClient(); mountebankClient.DeleteImposter(1234); var imposter = mountebankClient.CreateHttpImposter(1234, "test"); foreach (var virtRecordedCommand in _recordedCommands) { var stub = imposter.AddStub(); var predicateFields = new HttpPredicateFields { Path = virtRecordedCommand.Key, }; var containsPredicate = new ContainsPredicate <HttpPredicateFields>(predicateFields); foreach (var response in virtRecordedCommand.Value) { stub .On(containsPredicate) .ReturnsJson(HttpStatusCode.OK, response); } } mountebankClient.Submit(imposter); }
private void CreateImposter() { _imposter = _client.CreateHttpImposter(ImposterPort); _client.Submit(_imposter); }