/** 
 | 
 * @file        ADSO-10233 
 | 
 * @description Create campaign from capacity planning Gantt Chart 
 | 
 * @author      Pethaperumal Natarajan (Pethaperumal.NATARAJAN.intern@3ds.com) 
 | 
 * @copyright   Dassault Systèmes 
 | 
 */ 
 | 
  
 | 
import { AppMP, Demo, Scenario } from '../../libmp/appmp'; 
 | 
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; 
 | 
import { GanttChartRow } from '../../e2elib/lib/src/pageobjects/ganttchart/ganttchartrow'; 
 | 
import { GanttChartCampaignPlanning, GanttChartCampaignPlanningColors, GanttChartCampaignPlanningContextMenuItem } from '../../libmp/forms/form.campaignplanning'; 
 | 
import { DialogCampaign, DialogCampaignFields } from '../../libmp/dialogs/dialog.campaign'; 
 | 
import { GanttChartNodeSOPCriteria, StepGanttChart } from '../../libappsop/ganttchartsop'; 
 | 
import { DataCampaignTypeName } from '../../libmp/data/data.campaign'; 
 | 
import { startOfPlanningYear } from '../../libmp/data/data.period'; 
 | 
import { StepDialog } from '../../libappsop/dialogsop'; 
 | 
import { ListCampaign, ListCampaignColumn } from '../../libmp/forms/form.campaign'; 
 | 
import { StepList } from '../../libappsop/listsop'; 
 | 
import { dataMetalsUnits } from '../../libmp/data/data.unit'; 
 | 
  
 | 
describe('ADSO-10233 - Create campaign from capacity planning Gantt Chart', () => { 
 | 
  const appMP = AppMP.getInstance(); 
 | 
  const gcCampaignPlanning = appMP.viewCampaign.formCampaignPlanning.gcCampaign; 
 | 
  const listCampaigns = appMP.viewCampaign.formCampaign.listCampaign; 
 | 
  let row: GanttChartRow; 
 | 
  let dlgCampaign: DialogCampaign; 
 | 
  const inputCampaignVerify: DialogCampaignFields = { 'Earliest start': `01-Jan-${startOfPlanningYear}` }; 
 | 
  const inputCampaign: DialogCampaignFields = { 'Campaign type': DataCampaignTypeName.Campaignfor5XXXsmelt, Comment: 'New campaign' }; 
 | 
  const startDate = `17-Jun-${startOfPlanningYear}`; 
 | 
  const endDate = `17-Jul-${startOfPlanningYear}`; 
 | 
  const rowCampaign: ListCampaignColumn = { 
 | 
    Unit: dataMetalsUnits.MeltingFurnaceQuilmes.Name, 
 | 
    'Campaign type': DataCampaignTypeName.Campaignfor5XXXsmelt, 
 | 
    Start: `${startDate} 6:09`, 
 | 
    End: `${endDate} 6:09`, 
 | 
    Minimum: '46800 Ton', 
 | 
    Fulfillment: '0', 
 | 
    Comment: 'New campaign', 
 | 
  }; 
 | 
  const nodeCriteria: GanttChartNodeSOPCriteria = { ColorHex: GanttChartCampaignPlanningColors.cyan().Hex }; 
 | 
  
 | 
  beforeAll(async () => { 
 | 
    jasmine.addMatchers(qCustomMatcher); 
 | 
    await appMP.login(); 
 | 
  }); 
 | 
  
 | 
  afterAll(async () => { 
 | 
    await appMP.resetActiveView(appMP.viewCampaign); 
 | 
    await appMP.cleanupAndLogout(); 
 | 
  }); 
 | 
  
 | 
  afterEach(async () => { 
 | 
    await appMP.checkToastMessage(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Metals, Scenario.Base)}`, async () => { 
 | 
    await appMP.createDemoDataset(Demo.Metals, Scenario.Base, false); 
 | 
  }); 
 | 
  
 | 
  it(`Step 2 - Open view ${appMP.viewCampaign.viewPath}.`, async () => { 
 | 
    await appMP.viewCampaign.switchTo(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 3 - ${StepGanttChart.rightClickNodeIndexesAndSelectContextMenu(GanttChartCampaignPlanning.title, dataMetalsUnits.MeltingFurnaceQuilmes.Name, [0], GanttChartCampaignPlanningContextMenuItem.Create.Label)}`, async () => { 
 | 
    [row] = await gcCampaignPlanning.getChildrenRows(0, dataMetalsUnits.MeltingFurnaceQuilmes.Name); 
 | 
    await gcCampaignPlanning.rightClickNodeIndexesAndSelectContextMenu(row, [0], GanttChartCampaignPlanningContextMenuItem.Create); 
 | 
  }); 
 | 
  
 | 
  it(`Step 4 - ${StepDialog.verifyDialogValues(DialogCampaign.title, inputCampaignVerify)}`, async () => { 
 | 
    dlgCampaign = await listCampaigns.getDialog(); 
 | 
    await dlgCampaign.verifyDialogValues(inputCampaignVerify); 
 | 
  }); 
 | 
  
 | 
  it(`Step 5 - ${StepDialog.updateDialogValues(DialogCampaign.title, inputCampaign)} ${StepDialog.clickOK()}`, async () => { 
 | 
    await dlgCampaign.updateDialogValues(inputCampaign); 
 | 
    await dlgCampaign.clickOK(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 6 - ${StepList.verifyRowExists(ListCampaign.title, rowCampaign)}`, async () => { 
 | 
    await listCampaigns.verifyRowExists(rowCampaign); 
 | 
  }); 
 | 
  
 | 
  it(`Step 7 - ${StepGanttChart.verifyNodeCount(GanttChartCampaignPlanning.title, dataMetalsUnits.MeltingFurnaceQuilmes.Name, 3, nodeCriteria)}`, async () => { 
 | 
    await gcCampaignPlanning.verifyNodeCount(row, 3, nodeCriteria); 
 | 
  }); 
 | 
}); 
 |