private void RemovePreviousTest <TModel>(IReadDeleteApiEndpoint <TModel> api, Func <IReadOnlyApiEndpoint <TModel>, int?> findTestId) where TModel : class
        {
            var previousId = findTestId(api);

            if (previousId.HasValue)
            {
                var itemText = ItemText <TModel>();
                _output.WriteLine($"Removing previous test {itemText} (should not be here)...");
                Assert.True(api.Delete(previousId.Value));
            }
        }
        private void TestDeleteApi <TModel>(IReadDeleteApiEndpoint <TModel> api, TModel item, Func <TModel, int> getId, Action <TModel> testDeleted) where TModel : class
        {
            var itemText = ItemText <TModel>();

            _output.WriteLine($"Removing test {itemText}...");
            var itemId = getId(item);

            Assert.True(api.Delete(item));

            _output.WriteLine($"Attempting to re-load test {itemText}...");
            item = api.Find(itemId);
            testDeleted(item);
        }