001    package org.springframework.richclient.table.renderer;
002    
003    import java.awt.Component;
004    import java.util.Locale;
005    
006    import javax.swing.JTable;
007    import javax.swing.table.TableColumnModel;
008    
009    import junit.framework.TestCase;
010    
011    import org.springframework.context.support.MessageSourceAccessor;
012    import org.springframework.context.support.StaticMessageSource;
013    
014    /**
015     * @author Xavier Breton
016     */
017    public class EnumTableCellRendererTests extends TestCase {
018        
019            public enum Numbers {
020                
021                    ONE, 
022                    TWO, 
023                    THREE,
024                    FOUR, 
025                    FIVE, 
026                    SIX, 
027                    SEVEN, 
028                    EIGHT, 
029                    NINE, 
030                    TEN;
031                    
032            }
033            
034            private EnumTableCellRenderer tetcr;
035            
036            public void testGetTableCellRendererComponent() {
037                    StaticMessageSource messageSource = new StaticMessageSource();
038                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.ONE", Locale.getDefault(), "one");
039                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.TWO", Locale.getDefault(), "two");
040                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.THREE", Locale.getDefault(), "three");
041                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.FOUR", Locale.getDefault(), "four");
042                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.FIVE", Locale.getDefault(), "five");
043                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.SIX", Locale.getDefault(), "six");
044                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.SEVEN", Locale.getDefault(), "seven");
045                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.EIGHT", Locale.getDefault(), "eight");
046                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.NINE", Locale.getDefault(), "nine");
047                    messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.TEN", Locale.getDefault(), "ten");
048                    MessageSourceAccessor msa = new MessageSourceAccessor(messageSource);
049                    tetcr = new EnumTableCellRenderer(msa);
050                    Object[][] rowData = { 
051                                    { Numbers.ONE },
052                                    { Numbers.TWO },
053                                    { Numbers.THREE },
054                                    { Numbers.FOUR },
055                                    { Numbers.FIVE },
056                                    { Numbers.SIX },
057                                    { Numbers.SEVEN },
058                                    { Numbers.EIGHT },
059                                    { Numbers.NINE },
060                                    { Numbers.TEN }
061                                    };
062                    Object[] columnNames = { "Numbers" };
063                    JTable table = new JTable(rowData, columnNames);
064                    TableColumnModel tcm = table.getColumnModel();
065                    tcm.getColumn(0).setCellRenderer(tetcr);
066                    tetcr.getTableCellRendererComponent(table, Numbers.SEVEN, false, false, 6, 0);
067                    Component component = tetcr.getTableCellRendererComponent(table, Numbers.SEVEN, false, false, 6, 0);
068                    assertTrue(component instanceof EnumTableCellRenderer);
069            }
070    }