/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.acquire.explorer.core.bean; import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDateTime; import java.util.Arrays; import org.dcm4che3.data.Tag; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; import org.powermock.modules.junit4.PowerMockRunner; import org.weasis.core.api.media.data.TagW; import org.weasis.core.api.util.LocalUtil; import org.weasis.dicom.codec.TagD; @RunWith(PowerMockRunner.class) @PrepareForTest({ TagD.class, LocalUtil.class }) @SuppressStaticInitializationFor("org.weasis.dicom.codec.TagD") public class SeriesGroupTest { private static final LocalDateTime today = LocalDateTime.of(2016, 5, 12, 14, 25); private SeriesGroup s1, s2, s3; @Mock TagW modality; @Before public void setUp() { PowerMockito.mockStatic(TagD.class); PowerMockito.when(TagD.get(Tag.Modality)).thenReturn(modality); s1 = new SeriesGroup(); s2 = new SeriesGroup(today); s3 = new SeriesGroup("test serie 3"); //$NON-NLS-1$ } @Test public void testToString() { assertThat(s1.toString()).isEqualTo("Other"); //$NON-NLS-1$ assertThat(s2.toString()).isEqualTo(LocalUtil.getDateTimeFormatter().format(today)); assertThat(s3.toString()).isEqualTo("test serie 3"); //$NON-NLS-1$ } @Test public void testGetters() { assertThat(s1.getType()).isEqualTo(SeriesGroup.Type.NONE); assertThat(s2.getType()).isEqualTo(SeriesGroup.Type.DATE); assertThat(s3.getType()).isEqualTo(SeriesGroup.Type.NAME); } @Test public void testSort() { SeriesGroup s1 = new SeriesGroup(); SeriesGroup s2 = new SeriesGroup(today); SeriesGroup s3 = new SeriesGroup("serie3"); //$NON-NLS-1$ assetSorted(new SeriesGroup[] { s3, s2, s1 }, new SeriesGroup[] { s1, s2, s3 }); assetSorted(new SeriesGroup[] { s2, s3, s1 }, new SeriesGroup[] { s1, s2, s3 }); SeriesGroup s4 = new SeriesGroup(today.minusDays(1)); assetSorted(new SeriesGroup[] { s3, s2, s1, s4 }, new SeriesGroup[] { s1, s4, s2, s3 }); SeriesGroup s5 = new SeriesGroup("serie2"); //$NON-NLS-1$ assetSorted(new SeriesGroup[] { s3, s2, s1, s4, s5 }, new SeriesGroup[] { s1, s4, s2, s5, s3 }); SeriesGroup s6 = new SeriesGroup("2015"); //$NON-NLS-1$ assetSorted(new SeriesGroup[] { s3, s2, s1, s4, s5, s6 }, new SeriesGroup[] { s1, s4, s2, s6, s5, s3 }); } private void assetSorted(SeriesGroup[] input, SeriesGroup[] expected) { assertThat(Arrays.stream(input).sorted().toArray(SeriesGroup[]::new)).isEqualTo(expected); } }