@Override protected Encodable createEncodable() { return new ResolveObjectRequest(mockAuthSession, mockTargetData); }
@Override public ResolveObjectResponse resolveImmediately(final ResolveObjectRequest request) { execute(request); return request.getResponse(); }
public ResolveObjectRequest(final AuthenticationSession session, final IdentityData target) { super(session); this.target = target; initialized(); }
@Override public ResolveObjectResponse resolveImmediately(final ResolveObjectRequest request) { final AuthenticationSession session = request.getSession(); final IdentityData targetData = request.getTarget(); if (LOG.isDebugEnabled()) { LOG.debug("request resolveImmediately " + targetData + " for " + session); } final ObjectSpecification spec = getSpecification(targetData.getType()); final ObjectAdapter object = getPersistenceSession().loadObject(targetData.getOid(), spec); if (object.getResolveState().canChangeTo(ResolveState.RESOLVING)) { // this is need when the object store does not load the object fully // in the getObject() above getPersistenceSession().resolveImmediately(object); } return new ResolveObjectResponse(encoderDecoder.encodeCompletePersistentGraph(object)); }
/** * {@link #setResponse(Object) Sets a response} of an {@link ObjectData}. */ @Override public void execute(final ServerFacade serverFacade) { final ResolveObjectResponse response = serverFacade.resolveImmediately(this); setResponse(response); }
@Override protected void assertRoundtripped(final Object decodedEncodable, final Object originalEncodable) { final ResolveObjectRequest decoded = (ResolveObjectRequest) decodedEncodable; final ResolveObjectRequest original = (ResolveObjectRequest) originalEncodable; // TODO: to complete, may need to setup mock expectations assertThat(decoded.getId(), is(equalTo(original.getId()))); }
@Override public ResolveObjectResponse resolveImmediately(final ResolveObjectRequest request) { final IdentityData target = request.getTarget(); log("resolve immediately" + dump(target)); final ResolveObjectResponse response = decorated.resolveImmediately(request); final ObjectData objectData = response.getObjectData(); log(" <-- data: " + dump(objectData)); return response; }
@Override public void execute() { final ResolveObjectRequest request = new ResolveObjectRequest(getAuthenticationSession(), identityData); final ResolveObjectResponse response = serverFacade.resolveImmediately(request); final ObjectData update = response.getObjectData(); encoderDecoder.decode(update); } });
public ResolveObjectRequest(final DataInputExtended input) throws IOException { super(input); this.target = input.readEncodable(IdentityData.class); initialized(); }
@Override public void execute() { final ResolveObjectRequest request = new ResolveObjectRequest(getAuthenticationSession(), adapterData); // unlike the server-side implementation we don't invoke the // callbacks // for loading and loaded (they will already have been called in // the server) final ResolveObjectResponse response = serverFacade.resolveImmediately(request); final ObjectData data = response.getObjectData(); encoderDecoder.decode(data); } });
@Ignore("need to get working after refactoring") @Test public void testResolveImmediately() throws Exception { final TestProxyAdapter object = new TestProxyAdapter(); object.setupOid(new TestProxyOid(5)); object.setupResolveState(ResolveState.GHOST); final IdentityData identityData = new DummyReferenceData(); final ObjectData objectData = new DummyObjectData(); final ResolveObjectRequest request = new ResolveObjectRequest(session, identityData); mockery.checking(new Expectations() { { // encoder used to create identity data for target object one(mockEncoder).encodeIdentityData(object); will(returnValue(identityData)); // remote call asks for object's data one(mockDistribution).resolveImmediately(request); will(returnValue(objectData)); // data decode expected one(mockEncoder).decode(objectData); will(returnValue(null)); } }); persistenceSessionProxy.resolveImmediately(object); /* * * assertEquals("ET", movie.getName()); assertEquals(new DummyOid(5), * object.getOid()); assertEquals(new DummyVersion(3), * object.getVersion()); */ }