Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mock Fusion instance correctly in IndexStageTestBase #6

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

krook1024
Copy link

Tl;dr

Mock Fusion instance correctly in IndexStageTestBase

Details

Previously, if the IndexStage you were testing contained a call to IndexStage::newDocument, the unit test would fail because of an NPE because the tested IndexStage environment tries to create a document, but it cannot because the behaviour of the Fusion instance that's injected into the IndexStage isn't mocked correctly.

This PR fixes that behaviour and lets IndexStage instances run newDocuments, but it runs the IndexStageTestBase::newDocument in the background.

How to verify

Let's suppose you have an IndexStage that looks something like this:

public class MyStage extends IndexStageBase<MyStageConfig> {
// [...]
    @Override
    public void process(Document document, Context context, Consumer<Document> output) {
       Document document = newDocument();
       output.accept(document);
    }
// [...]
}

And the test looking like this:

public class MyStageTest extends IndexStageTestBase<MyStageConfig> {
// [...]
 @Test
    public void testWhenValidUrlIsProvidedDocumentShouldBeFed() {
         MyStageConfig conf = newConfig(MyStageConfig.class, config -> {
             // [...]
        }); 

        MyStage underTest = createStage(MyStage.class, conf);

        underTest.process(doc, null, System.out::println);
    }
// [...]
}

It would end up in a NPE in the current version, but with this PR it should print the new document.

@krook1024
Copy link
Author

@dzmitryk @sbrowndev can you guys take a look this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant