/* Copyright (c) 2007-2008 Timothy Wall, All Rights Reserved
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.  
 */
package com.sun.jna.platform;


import com.sun.jna.Platform;
import com.sun.jna.platform.unix.X11;
import com.sun.jna.platform.win32.DBT;
import junit.framework.TestCase;

import com.sun.jna.StructureFieldOrderInspector;

import java.util.ArrayList;
import java.util.List;

public class StructureFieldOrderTest extends TestCase {

    public void testMethodGetFieldOrder() {
        final List<String> ignoreConstructorError = new ArrayList<String>();

        if (Platform.isWindows()) {
            ignoreConstructorError.add(X11.class.getName() + "$");
        }

        ignoreConstructorError.add(DBT.DEV_BROADCAST_HANDLE.class.getName()); // manually validated by wolftobias
        ignoreConstructorError.add(DBT.DEV_BROADCAST_PORT.class.getName()); // manually validated by wolftobias

        StructureFieldOrderInspector.batchCheckStructureGetFieldOrder(FileUtils.class, ignoreConstructorError);
    }

}

@@ -1495,10 +1495,511 @@
 %0A    %7D%0A%0A
+// test below is helpful when investigating failure cause of a specific Structure class, it shows full causes and traces.%0A/*%0A    public void testMethodGetFieldOrderSingleClass() %7B%0A        final List%3CString%3E ignoreConstructorError = new ArrayList%3CString%3E();%0A%0A        if (Platform.isWindows()) %7B%0A            ignoreConstructorError.add(X11.class.getName() + %22$%22);%0A        %7D%0A%0A        StructureFieldOrderInspector.checkMethodGetFieldOrder(LMAccess.GROUP_INFO_3.class, ignoreConstructorError);%0A    %7D%0A//*/%0A%0A%0A
 %7D%0A

add commented example of test for individual Structure class.