public String getFingerprint() {
        return fingerprint;
    }
@Test
    public void testGetFingerprint() {
        final StreamMock stream1 = getStreamMock("test");
        final StreamRuleMock rule1 = new StreamRuleMock(ImmutableMap.of(
                "_id", new ObjectId(),
                "field", "testfield1",
                "type", StreamRuleType.PRESENCE.toInteger(),
                "stream_id", stream1.getId()
        ));
        final StreamRuleMock rule2 = new StreamRuleMock(ImmutableMap.of(
                "_id", new ObjectId(),
                "field", "testfield2",
                "value", "^test",
                "type", StreamRuleType.REGEX.toInteger(),
                "stream_id", stream1.getId()
        ));

        stream1.setStreamRules(Lists.newArrayList(rule1, rule2));

        final StreamMock stream2 = getStreamMock("test");
        final StreamRuleMock rule3 = new StreamRuleMock(ImmutableMap.of(
                "_id", new ObjectId(),
                "field", "testfield",
                "value", "^test",
                "type", StreamRuleType.REGEX.toInteger(),
                "stream_id", stream2.getId()
        ));

        stream2.setStreamRules(Lists.newArrayList(rule3));

        final StreamRouterEngine engine1 = newEngine(Lists.newArrayList(stream1));
        final StreamRouterEngine engine2 = newEngine(Lists.newArrayList(stream1));
        final StreamRouterEngine engine3 = newEngine(Lists.newArrayList(stream2));

        assertEquals(engine1.getFingerprint(), engine2.getFingerprint());
        assertNotEquals(engine1.getFingerprint(), engine3.getFingerprint());
    }