1616package com.stormpath.sdk.servlet.mvc
1717
1818import com.stormpath.sdk.account.Account
19+ import com.stormpath.sdk.account.AccountStatus
1920import com.stormpath.sdk.application.Application
21+ import com.stormpath.sdk.cache.Cache
22+ import com.stormpath.sdk.cache.CacheManager
2023import com.stormpath.sdk.client.Client
2124import com.stormpath.sdk.directory.CustomData
2225import com.stormpath.sdk.directory.Directory
2326import com.stormpath.sdk.group.Group
2427import com.stormpath.sdk.impl.account.DefaultAccount
2528import com.stormpath.sdk.impl.directory.DefaultDirectory
26- import com.stormpath.sdk.impl.ds.InternalDataStore
2729import com.stormpath.sdk.impl.group.DefaultGroup
2830import com.stormpath.sdk.impl.organization.DefaultOrganization
2931import com.stormpath.sdk.organization.Organization
@@ -47,7 +49,6 @@ import javax.servlet.http.HttpServletResponse
4749import static org.easymock.EasyMock.anyObject
4850import static org.easymock.EasyMock.createMock
4951import static org.easymock.EasyMock.createNiceMock
50- import static org.easymock.EasyMock.createStrictMock
5152import static org.easymock.EasyMock.expect
5253import static org.easymock.EasyMock.partialMockBuilder
5354import static org.easymock.EasyMock.replay
@@ -133,6 +134,49 @@ public class RegisterControllerTest {
133134 assertNotNull (vm, " ViewModel should not be empty" )
134135 }
135136
137+ @Test
138+ void testAccountUnverifiedRemovedFromCache () {
139+ def HREF = " a real href"
140+ def cacheManager = createMock(CacheManager )
141+ def cache = createMock(Cache )
142+
143+ RegisterController registerController = new RegisterController (
144+ client : client,
145+ preRegisterHandler : registerPreHandler,
146+ csrfTokenManager : csrfTokenManager,
147+ fieldValueResolver : requestFieldValueResolver,
148+ produces : Arrays . asList(MediaType . TEXT_HTML ),
149+ eventPublisher : eventPublisher,
150+ accountStoreResolver : accountStoreResolver
151+ )
152+
153+ expect(client. instantiate(Account . class)). andReturn account
154+ expect(requestFieldValueResolver. getAllFields(request)). andReturn new HashMap<String , Object > ()
155+ expect(request. getAttribute(Application . class. getName())). andReturn ((Application )application)
156+ expect(accountStoreResolver. getAccountStore(request, response)). andReturn directory
157+ expect(registerPreHandler. handle(request, response, account)). andReturn true
158+ expect(account. setGivenName(" UNKNOWN" )). andReturn account
159+ expect(account. setSurname(" UNKNOWN" )). andReturn account
160+ expect(account. getStatus()). andReturn AccountStatus . UNVERIFIED
161+ expect(account. getHref()). andReturn HREF
162+ expect(account. getCustomData()). andReturn customData
163+ expect(directory. createAccount(account)). andReturn account
164+ expect(eventPublisher. publish(anyObject()))
165+
166+ expect(request. getAttribute(UserAgents . USER_AGENT_REQUEST_ATTRIBUTE_NAME )). andReturn new DefaultUserAgent (request)
167+ expect(request. getHeader(" Accept" )). andReturn " text/html"
168+
169+ expect(client. getCacheManager()). andReturn cacheManager
170+ expect(cacheManager. getCache(Account . class. name)). andReturn cache
171+ expect(cache. remove(HREF )). andReturn(cache). once()
172+
173+ replay eventPublisher, registerPreHandler, request, response, client, cacheManager, cache, requestFieldValueResolver, application, account, accountStoreResolver, directory
174+
175+ def vm = registerController. onValidSubmit(request, response, form)
176+
177+ verify eventPublisher, registerPreHandler, request, response, client, cacheManager, cache, requestFieldValueResolver, application, account, accountStoreResolver, directory
178+ }
179+
136180 @Test (expectedExceptions = [IllegalStateException ])
137181 void testAccountStoreResolverResolvesGroup () {
138182 RegisterController registerController = new RegisterController (
0 commit comments