@Test
public void treatsNewlyAddedShapesAsNewSources() throws URISyntaxException {

    Model originalModel = Model.assembler().assemble().unwrap();
    Model newModel = Model.assembler()
            .addShape(StringShape.builder().id("a.b#MyString").build())
            .assemble()
            .unwrap();
    MockManifest manifest = new MockManifest();
    ProjectionConfig projection = ProjectionConfig.builder().build();
    PluginContext context = PluginContext.builder()
            .projection("foo", projection)
            .fileManifest(manifest)
            .originalModel(originalModel)
            .model(newModel)
            .sources(ListUtils.of(Paths.get(getClass().getResource("sources/a.smithy").toURI()).getParent()))
            .build();
    new SourcesPlugin().execute(context);
    String modelString = manifest.getFileString("model.json").get();
    assertThat(modelString, containsString("MyString"));
}