@Test public void testGetCategory() { String columnId = "my_test_column_id"; LogicalModel logicalModel = mock(LogicalModel.class); doReturn(Collections.<Category>emptyList()).when(logicalModel).getCategories(); Category result = spyMetadataServiceUtil.getCategory(columnId, logicalModel); assertNull(result); LogicalColumn mockColumn = mock(LogicalColumn.class); Category mockCat1 = mock(Category.class); Category mockCat2 = mock(Category.class); doReturn(null).when(mockCat1).findLogicalColumn(columnId); doReturn(mockColumn).when(mockCat2).findLogicalColumn(columnId); List<Category> listCategories = new ArrayList<Category>(2); listCategories.add(mockCat1); listCategories.add(mockCat2); doReturn(listCategories).when(logicalModel).getCategories(); result = spyMetadataServiceUtil.getCategory(columnId, logicalModel); assertEquals(mockCat2, result); }