/**
   * Test method for {@link
   * org.talend.dq.writer.AElementPersistance#saveWithDependencies(org.talend.core.model.properties.Item,
   * orgomg.cwm.objectmodel.core.ModelElement)} .
   *
   * @throws PersistenceException
   */
  @Test
  public void testSaveWithDependenciesAnalysis() throws PersistenceException {
    PowerMockito.mockStatic(ProxyRepositoryFactory.class);
    ProxyRepositoryFactory mockProxyRepositoryFactory =
        PowerMockito.mock(ProxyRepositoryFactory.class);
    when(ProxyRepositoryFactory.getInstance()).thenReturn(mockProxyRepositoryFactory);
    stub(
        method(
            ProxyRepositoryFactory.class,
            "save",
            org.talend.core.model.properties.Item.class,
            boolean.class)); // $NON-NLS-1$

    PowerMockito.mockStatic(IRepositoryFactory.class);
    IRepositoryFactory mockIRepositoryFactory = PowerMockito.mock(IRepositoryFactory.class);
    when(mockProxyRepositoryFactory.getRepositoryFactoryFromProvider())
        .thenReturn(mockIRepositoryFactory);

    PowerMockito.mockStatic(XmiResourceManager.class);
    when(mockIRepositoryFactory.getResourceManager()).thenReturn(new XmiResourceManager());

    AnalysisWriter createAnalysisWrite = ElementWriterFactory.getInstance().createAnalysisWrite();
    Analysis createAnalysis = AnalysisFactory.eINSTANCE.createAnalysis();
    AnalysisResult createAnalysisResult = AnalysisFactory.eINSTANCE.createAnalysisResult();
    AnalysisContext createAnalysisContext = AnalysisFactory.eINSTANCE.createAnalysisContext();
    TDQAnalysisItem analysisItem =
        org.talend.dataquality.properties.PropertiesFactory.eINSTANCE.createTDQAnalysisItem();
    analysisItem.setAnalysis(createAnalysis);
    String anaName = "ana1"; // $NON-NLS-1$
    String exceptedFileName = anaName + "_0.1.ana"; // $NON-NLS-1$
    createAnalysis.setName(anaName);
    createAnalysis.setResults(createAnalysisResult);
    createAnalysis.setContext(createAnalysisContext);

    ReturnCode create = createAnalysisWrite.saveWithDependencies(analysisItem, createAnalysis);
    assertTrue(create.isOk());
    Assert.assertEquals(exceptedFileName, analysisItem.getFilename());

    String anaName2 = "ana2"; // $NON-NLS-1$
    String exceptedFileName2 = anaName2 + "_0.1.ana"; // $NON-NLS-1$
    createAnalysis.setName(anaName2);

    create = createAnalysisWrite.saveWithDependencies(analysisItem, createAnalysis);
    assertTrue(create.isOk());
    Assert.assertEquals(exceptedFileName2, analysisItem.getFilename());
  }
  /**
   * Test method for {@link
   * org.talend.dq.writer.AElementPersistance#saveWithoutDependencies(org.talend.core.model.properties.Item,
   * orgomg.cwm.objectmodel.core.ModelElement)} .
   *
   * @throws PersistenceException
   */
  @Test
  public void testSaveWithoutDependenciesReport() throws PersistenceException {
    PowerMockito.mockStatic(ProxyRepositoryFactory.class);
    ProxyRepositoryFactory mockProxyRepositoryFactory =
        PowerMockito.mock(ProxyRepositoryFactory.class);
    when(ProxyRepositoryFactory.getInstance()).thenReturn(mockProxyRepositoryFactory);
    stub(
        method(
            ProxyRepositoryFactory.class,
            "save",
            org.talend.core.model.properties.Item.class,
            boolean.class)); // $NON-NLS-1$

    PowerMockito.mockStatic(IRepositoryFactory.class);
    IRepositoryFactory mockIRepositoryFactory = PowerMockito.mock(IRepositoryFactory.class);
    when(mockProxyRepositoryFactory.getRepositoryFactoryFromProvider())
        .thenReturn(mockIRepositoryFactory);

    PowerMockito.mockStatic(XmiResourceManager.class);
    when(mockIRepositoryFactory.getResourceManager()).thenReturn(new XmiResourceManager());

    ReportWriter createReportWriter = ElementWriterFactory.getInstance().createReportWriter();
    TdReport createTdReport = ReportsFactory.eINSTANCE.createTdReport();
    TDQReportItem reportItem =
        org.talend.dataquality.properties.PropertiesFactory.eINSTANCE.createTDQReportItem();
    reportItem.setReport(createTdReport);

    String repName = "rep1"; // $NON-NLS-1$
    String exceptedFileName = repName + "_0.1.rep"; // $NON-NLS-1$
    createTdReport.setName(repName);

    ReturnCode create = createReportWriter.saveWithoutDependencies(reportItem, createTdReport);
    assertTrue(create.isOk());
    Assert.assertEquals(exceptedFileName, reportItem.getFilename());

    String repName2 = "rep2"; // $NON-NLS-1$
    String exceptedFileName2 = repName2 + "_0.1.rep"; // $NON-NLS-1$
    createTdReport.setName(repName2);

    create = createReportWriter.saveWithDependencies(reportItem, createTdReport);
    assertTrue(create.isOk());
    Assert.assertEquals(exceptedFileName2, reportItem.getFilename());
  }