/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kie.workbench.common.stunner.bpmn.client.forms.fields.assigneeEditor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.kie.workbench.common.stunner.bpmn.client.forms.fields.model.AssigneeRow;
import org.kie.workbench.common.stunner.bpmn.forms.model.AssigneeEditorFieldDefinition;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class AssigneeEditorFieldRendererTest {
@Mock
private AssigneeEditorWidgetView assigneeEditorWidgetView;
@Mock
private AssigneeListItemWidgetView assigneeListItemWidgetView;
@Mock
private AssigneeEditorFieldDefinition assigneeEditorFieldDefinition;
@Spy
@InjectMocks
private AssigneeEditorFieldRenderer assigneeEditor = new AssigneeEditorFieldRenderer(assigneeEditorWidgetView);
@Before
public void setUp() {
assigneeEditor.init(null,
assigneeEditorFieldDefinition);
when(assigneeEditorFieldDefinition.getMax()).thenReturn(new Integer(-1));
when(assigneeEditorWidgetView.getAssigneeWidget(anyInt())).thenReturn(assigneeListItemWidgetView);
when(assigneeEditorWidgetView.getAssigneeRowsCount()).thenReturn(1);
}
@Test
public void testAddAssignee() {
assigneeEditor.addAssignee();
verify(assigneeEditorWidgetView,
times(1)).setTableDisplayStyle();
verify(assigneeEditorWidgetView,
times(1)).getAssigneeRowsCount();
verify(assigneeEditorWidgetView,
times(1)).getAssigneeWidget(0);
when(assigneeEditorWidgetView.getAssigneeRowsCount()).thenReturn(2);
assigneeEditor.addAssignee();
verify(assigneeEditorWidgetView,
times(2)).getAssigneeRowsCount();
verify(assigneeEditorWidgetView,
times(1)).getAssigneeWidget(1);
}
@Test
public void testRemoveAssignee() {
assigneeEditor.addAssignee();
assigneeEditor.addAssignee();
assigneeEditor.removeAssignee(null);
verify(assigneeEditorWidgetView,
times(3)).getAssigneeRows();
verify(assigneeEditorWidgetView,
times(1)).doSave();
assigneeEditor.removeAssignee(null);
verify(assigneeEditorWidgetView,
times(4)).getAssigneeRows();
verify(assigneeEditorWidgetView,
times(2)).doSave();
}
@Test
public void testDeserializeAssignee() {
List<String> assignees = new ArrayList<String>(Arrays.asList("user1",
"user2",
"user3",
"user4",
"user5"));
assigneeEditor.setNames(assignees);
List<AssigneeRow> assigneeRows = assigneeEditor.deserializeAssignees("user3,user2,user5");
assertEquals(3,
assigneeRows.size());
AssigneeRow a = assigneeRows.get(0);
assertEquals("user3",
a.getName());
a = assigneeRows.get(1);
assertEquals("user2",
a.getName());
a = assigneeRows.get(2);
assertEquals("user5",
a.getName());
}
@Test
public void testSerializeAssignee() {
List<AssigneeRow> assigneeRows = new ArrayList<AssigneeRow>();
assigneeRows.add(new AssigneeRow("user3",
null));
assigneeRows.add(new AssigneeRow("user2",
null));
assigneeRows.add(new AssigneeRow("user5",
null));
String s = assigneeEditor.serializeAssignees(assigneeRows);
assertEquals("user3,user2,user5",
s);
}
}