static void removeField(Event evt, List<String> fieldsToRemove) {
        try {
            for (String s : fieldsToRemove) {
                String fieldToRemove = StringInterpolation.evaluate(evt, s);
                evt.remove(fieldToRemove);
            }
        } catch (IOException ex) {
            throw new IllegalStateException(ex);
        }
    }
@Test
    public void testRemoveField() {
        // remove a field
        Event e = new Event();
        String testField = "test_field";
        String testValue = "test_value";
        e.setField(testField, testValue);
        CommonActions.removeField(e, Collections.singletonList(testField));
        Assert.assertFalse(e.getData().keySet().contains(testField));

        // remove non-existent field
        e = new Event();
        String testField2 = "test_field2";
        e.setField(testField2, testValue);
        CommonActions.removeField(e, Collections.singletonList(testField));
        Assert.assertFalse(e.getData().keySet().contains(testField));
        Assert.assertTrue(e.getData().keySet().contains(testField2));

        // remove multiple fields
        e = new Event();
        List<String> fields = new ArrayList<>();
        for (int k = 0; k < 3; k++) {
            String field = testField + k;
            e.setField(field, testValue);
            fields.add(field);
        }
        e.setField(testField, testValue);
        CommonActions.removeField(e, fields);
        for (String field : fields) {
            Assert.assertFalse(e.getData().keySet().contains(field));
        }
        Assert.assertTrue(e.getData().keySet().contains(testField));

        // remove dynamically-named field
        e = new Event();
        String otherField = "other_field";
        String otherValue = "other_value";
        e.setField(otherField, otherValue);
        String derivativeField = otherValue + "_foo";
        e.setField(derivativeField, otherValue);
        CommonActions.removeField(e, Collections.singletonList("%{" + otherField + "}_foo"));
        Assert.assertFalse(e.getData().keySet().contains(derivativeField));
        Assert.assertTrue(e.getData().keySet().contains(otherField));
    }