I have a problem in writing grails unit test case for the controller with
filter enabled. When the test case run without filters then it is working
fine, if it runs withFilters then it is failing for accessControl() method
not found in the controller. I dont know how to make Shiro's api to be
visible while running the test case.I referred shiro unit test case link 
http://shiro.apache.org/testing.html <http://shiro.apache.org/testing.html>  
but I couldn't get any info regarding accessControl().I have given sample
code how the my classes and test case looks like

MyController.groovy
-------------------
def create() {
                // getting request parameters and validation
                String emailId = params.emailId
                def ret = folderService.createUser(emailId)
                
                return ret
        }

MyControllerFilters.groovy
--------------------------
def filters = {
                loginCheck(controller: 'user') {
                        before = {
                                //do some business checks
                        
                                // Access control by convention.
                                accessControl() // This is a dynamic method 
injected by
ShiroGrailsPlugin to FilterConfig, but this is not visible during the test
case. 
                        }
                }


MyControllerTests.groovy
-------------------------
@TestFor(MyController)
@Mock(MyControllerFilters)
class MyControllerTests {

        @Before
        void setup() {
                // initializing some variables
        }
        
        void testCreateUserWithFilter() {
                
                request.accessAllowed = true
                                
                withFilters(action:"create") {
                        controller.create()
                }
                
                assert response.message == "success"
        }

}





--
View this message in context: 
http://shiro-user.582556.n2.nabble.com/How-to-mock-or-auto-inject-shiro-s-accessControl-method-in-grails-unit-test-case-tp7579114.html
Sent from the Shiro User mailing list archive at Nabble.com.

Reply via email to