/* Copyright (c) 2010 Daniel Doubrovkine, 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.win32;
import com.sun.jna.LastErrorException;
import junit.framework.TestCase;
/**
* @author dblock[at]dblock[dot]org
*/
public class Win32ExceptionTest extends TestCase {
public static void main(String[] args) {
junit.textui.TestRunner.run(Win32ExceptionTest.class);
}
public void testFormatMessageFromLastErrorCode() {
try {
throw new Win32Exception(W32Errors.ERROR_SHARING_PAUSED);
} catch (Win32Exception e) {
if(AbstractWin32TestSupport.isEnglishLocale) {
assertLastErrorValue(e, W32Errors.ERROR_SHARING_PAUSED,
"The remote server has been paused or is in the process of being started.");
} else {
System.err.println("testFormatMessageFromHR test can only be run with english locale.");
}
}
}
public void testFormatMessageFromHR() {
try {
throw new Win32Exception(W32Errors.S_OK);
} catch (Win32Exception e) {
if(AbstractWin32TestSupport.isEnglishLocale) {
assertLastErrorValue(e, W32Errors.ERROR_SUCCESS, "The operation completed successfully.");
} else {
System.err.println("testFormatMessageFromHR test can only be run with english locale.");
}
}
}
private void assertLastErrorValue(LastErrorException e, int code, String msg) {
assertEquals("Mismatched error code", code, e.getErrorCode());
assertEquals("Mismatched error message", msg, e.getMessage());
}
}