### Question:
MsoTenantAdapterImpl implements MsoTenantAdapter { @Override public void rollbackTenant(TenantRollback rollback) throws TenantException { if (rollback == null) { logger.warn("{} {} rollbackTenant, rollback is null", MessageEnum.RA_ROLLBACK_NULL, ErrorCode.DataError.getValue()); return; } String cloudSiteId = rollback.getCloudId(); String tenantId = rollback.getTenantId(); logger.debug("Rolling Back Tenant {} in {}", rollback.getTenantId(), cloudSiteId); if (rollback.getTenantCreated()) { try { MsoTenantUtils tUtils = tFactory.getTenantUtils(cloudSiteId); tUtils.deleteTenant(tenantId, cloudSiteId); } catch (MsoException me) { me.addContext(ROLLBACK_TENANT); logger.error("{} {} Exception - rollbackTenant {}: ", MessageEnum.RA_ROLLBACK_TENANT_ERR, ErrorCode.DataError.getValue(), tenantId, me); throw new TenantException(me); } } return; }  @Override void healthCheck(); @Override void createTenant(String cloudSiteId, String tenantName, Map<String, String> metadata, Boolean failIfExists,
            Boolean backout, MsoRequest msoRequest, Holder<String> tenantId, Holder<TenantRollback> rollback); @Override void queryTenant(String cloudSiteId, String tenantNameOrId, MsoRequest msoRequest, Holder<String> tenantId,
            Holder<String> tenantName, Holder<Map<String, String>> metadata); @Override void deleteTenant(String cloudSiteId, String tenantId, MsoRequest msoRequest, Holder<Boolean> tenantDeleted); @Override void rollbackTenant(TenantRollback rollback); static final String CREATE_TENANT; static final String OPENSTACK; static final String QUERY_TENANT; static final String DELETE_TENANT; static final String ROLLBACK_TENANT; }### Answer:
@Test public void rollbackTenant() throws Exception { msoTenantAdapter.rollbackTenant(new TenantRollback()); }