/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content; import org.mockito.Mockito; import junit.framework.TestCase; import com.enonic.cms.core.content.category.CategoryEntity; import com.enonic.cms.store.dao.ContentDao; public class ContentNameForCopiesResolverTest extends TestCase { private final CategoryEntity category = new CategoryEntity(); private ContentDao contentEntityDao; private ContentNameForCopiesResolver resolver; @Override public void setUp() throws Exception { // re-init contentEntityDao each time contentEntityDao = Mockito.mock( ContentDao.class ); resolver = new ContentNameForCopiesResolver( contentEntityDao ); } private ContentEntity createContent( String name ) { ContentEntity contentEntity = new ContentEntity(); contentEntity.setCategory( category ); contentEntity.setName( name ); return contentEntity; } public void testFindUniqueNameInCategory_negativeCounter() throws Exception { assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(-2)" ) ), "Mypage(1)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(-1)" ) ), "Mypage(1)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(0)" ) ), "Mypage(1)" ); } public void testFindUniqueNameInCategory_emptyCategory() throws Exception { assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage" ) ), "Mypage(1)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(hello)" ) ), "Mypage(hello)(1)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage)" ) ), "Mypage)(1)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(" ) ), "Mypage((1)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage()" ) ), "Mypage()(1)" ); } public void testFindUniqueNameInCategory_1() throws Exception { Mockito.when( contentEntityDao.checkNameExists( category, "Mypage" ) ).thenReturn( true ); Mockito.when( contentEntityDao.checkNameExists( category, "Mypage(1)" ) ).thenReturn( true ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage" ) ), "Mypage(2)" ); } public void testFindUniqueNameInCategory_2() throws Exception { Mockito.when( contentEntityDao.checkNameExists( category, "Mypage" ) ).thenReturn( true ); Mockito.when( contentEntityDao.checkNameExists( category, "Mypage(2)" ) ).thenReturn( true ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(2)" ) ), "Mypage(1)" ); } public void testFindUniqueNameInCategory_3() throws Exception { Mockito.when( contentEntityDao.checkNameExists( category, ( "Mypage" ) ) ).thenReturn( true ); Mockito.when( contentEntityDao.checkNameExists( category, ( "Mypage(1)" ) ) ).thenReturn( true ); Mockito.when( contentEntityDao.checkNameExists( category, ( "Mypage(2)" ) ) ).thenReturn( true ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage" ) ), "Mypage(3)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(1)" ) ), "Mypage(3)" ); assertEquals( resolver.findUniqueNameInCategory( createContent( "Mypage(2)" ) ), "Mypage(3)" ); } }