### Question:
ComposerHostedFacetImpl extends FacetSupport implements ComposerHostedFacet { @Override @TransactionalStoreBlob public void upload(final String vendor, final String project, final String version, final Payload payload) throws IOException { content().put(ComposerPathUtils.buildZipballPath(vendor, project, version), payload, AssetKind.ZIPBALL); } @Inject  ComposerHostedFacetImpl(final ComposerJsonProcessor composerJsonProcessor); @Override @TransactionalStoreBlob void upload(final String vendor, final String project, final String version, final Payload payload); @Override Content getZipball(final String path); @Override @TransactionalTouchMetadata Content getPackagesJson(); @Override @TransactionalTouchMetadata Content getProviderJson(final String vendor, final String project); @Override @TransactionalStoreBlob void rebuildProviderJson(final String vendor, final String project);  }### Answer:
@Test public void testUpload() throws Exception { underTest.upload(VENDOR, PROJECT, VERSION, payload); verify(composerContentFacet).put(ZIPBALL_PATH, payload, ZIPBALL); }