You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2014/10/10 17:50:19 UTC
[12/43] Changes to repair to only bring us up to the current version
only. This is what we need in practice.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/f7d406e3/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/load/LoadTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/load/LoadTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/load/LoadTest.java
index 3643bd1..ab0e2f4 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/load/LoadTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/mvcc/stage/load/LoadTest.java
@@ -17,6 +17,7 @@ import org.apache.usergrid.persistence.collection.mvcc.entity.MvccEntity;
import org.apache.usergrid.persistence.collection.mvcc.stage.AbstractIdStageTest;
import org.apache.usergrid.persistence.collection.mvcc.stage.CollectionIoEvent;
import org.apache.usergrid.persistence.collection.mvcc.stage.TestEntityGenerator;
+import org.apache.usergrid.persistence.collection.serialization.SerializationFig;
import org.apache.usergrid.persistence.collection.service.UUIDService;
import org.apache.usergrid.persistence.model.entity.Entity;
import org.apache.usergrid.persistence.model.entity.Id;
@@ -46,6 +47,8 @@ public class LoadTest extends AbstractIdStageTest {
final CollectionScope collection = mock(CollectionScope.class);
final UUIDService uuidService = mock(UUIDService.class);
final MvccEntitySerializationStrategy serializationStrategy = mock(MvccEntitySerializationStrategy.class);
+ final SerializationFig serializationFig = mock(SerializationFig.class);
+ when(serializationFig.getBufferSize()).thenReturn( 10 );
final UUID loadVersion = UUIDGenerator.newTimeUUID();
@@ -69,7 +72,7 @@ public class LoadTest extends AbstractIdStageTest {
- Load load = new Load( uuidService, serializationStrategy );
+ Load load = new Load( uuidService, serializationStrategy, serializationFig );
Entity loaded = load.call( entityIoEvent );
@@ -87,6 +90,9 @@ public class LoadTest extends AbstractIdStageTest {
final CollectionScope collection = mock(CollectionScope.class);
final UUIDService uuidService = mock(UUIDService.class);
final MvccEntitySerializationStrategy serializationStrategy = mock(MvccEntitySerializationStrategy.class);
+ final SerializationFig serializationFig = mock(SerializationFig.class);
+ when(serializationFig.getBufferSize()).thenReturn( 10 );
+
final UUID loadVersion = UUIDGenerator.newTimeUUID();
@@ -128,7 +134,7 @@ public class LoadTest extends AbstractIdStageTest {
when(serializationStrategy.write( same(collection), writtenEntityArg.capture() )).thenReturn( batch );
- Load load = new Load( uuidService, serializationStrategy );
+ Load load = new Load( uuidService, serializationStrategy, serializationFig );
Entity loaded = load.call( entityIoEvent );
assertNotNull( loaded.getField( "derp" ) );
@@ -162,6 +168,9 @@ public class LoadTest extends AbstractIdStageTest {
final CollectionScope collection = mock(CollectionScope.class);
final UUIDService uuidService = mock(UUIDService.class);
final MvccEntitySerializationStrategy serializationStrategy = mock(MvccEntitySerializationStrategy.class);
+ final SerializationFig serializationFig = mock(SerializationFig.class);
+ when(serializationFig.getBufferSize()).thenReturn( 10 );
+
final ChangeLogGenerator changeLogGenerator = new ChangeLogGeneratorImpl();
@@ -206,7 +215,7 @@ public class LoadTest extends AbstractIdStageTest {
when(serializationStrategy.write( same(collection), writtenEntityArg.capture() )).thenReturn( batch );
- Load load = new Load( uuidService, serializationStrategy );
+ Load load = new Load( uuidService, serializationStrategy, serializationFig );
Entity loaded = load.call( entityIoEvent );
assertNotNull( loaded.getField( "derple" ) );
@@ -236,6 +245,9 @@ public class LoadTest extends AbstractIdStageTest {
final CollectionScope collection = mock(CollectionScope.class);
final UUIDService uuidService = mock(UUIDService.class);
final MvccEntitySerializationStrategy serializationStrategy = mock(MvccEntitySerializationStrategy.class);
+ final SerializationFig serializationFig = mock(SerializationFig.class);
+ when(serializationFig.getBufferSize()).thenReturn( 10 );
+
final UUID loadVersion = UUIDGenerator.newTimeUUID();
@@ -284,7 +296,7 @@ public class LoadTest extends AbstractIdStageTest {
when(serializationStrategy.write( same(collection), writtenEntityArg.capture() )).thenReturn( batch );
- Load load = new Load( uuidService, serializationStrategy );
+ Load load = new Load( uuidService, serializationStrategy, serializationFig );
Entity loaded = load.call( entityIoEvent );
assertNotNull( loaded.getField( "derp" ) );
@@ -317,6 +329,9 @@ public class LoadTest extends AbstractIdStageTest {
final CollectionScope collection = mock(CollectionScope.class);
final UUIDService uuidService = mock(UUIDService.class);
final MvccEntitySerializationStrategy serializationStrategy = mock(MvccEntitySerializationStrategy.class);
+ final SerializationFig serializationFig = mock(SerializationFig.class);
+ when(serializationFig.getBufferSize()).thenReturn( 10 );
+
final UUID loadVersion = UUIDGenerator.newTimeUUID();
@@ -334,7 +349,7 @@ public class LoadTest extends AbstractIdStageTest {
//mock up returning a list of MvccEntities
when(serializationStrategy.load( collection, entityId, loadVersion, 1 )).thenReturn( results);
- Load load = new Load( uuidService, serializationStrategy );
+ Load load = new Load( uuidService, serializationStrategy, serializationFig );
Entity loaded = load.call( entityIoEvent );
assertNull( "No entity was loaded", loaded );
@@ -347,6 +362,9 @@ public class LoadTest extends AbstractIdStageTest {
@Override
protected void validateStage( final CollectionIoEvent<Id> event ) {
final UUIDService uuidService = mock(UUIDService.class);
+ final SerializationFig serializationFig = mock(SerializationFig.class);
+ when(serializationFig.getBufferSize()).thenReturn( 10 );
+
/**
* Mock up wrong UUID type
@@ -356,6 +374,6 @@ public class LoadTest extends AbstractIdStageTest {
final MvccEntitySerializationStrategy serializationStrategy = mock(MvccEntitySerializationStrategy.class);
- new Load(uuidService, serializationStrategy).call( event );
+ new Load(uuidService, serializationStrategy, serializationFig).call( event );
}
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/f7d406e3/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/EntityRepairImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/EntityRepairImplTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/EntityRepairImplTest.java
new file mode 100644
index 0000000..f4a75d4
--- /dev/null
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/EntityRepairImplTest.java
@@ -0,0 +1,136 @@
+/*
+ *
+ * * Licensed to the Apache Software Foundation (ASF) under one or more
+ * * contributor license agreements. The ASF licenses this file to You
+ * * under the Apache License, Version 2.0 (the "License"); you may not
+ * * use this file except in compliance with the License.
+ * * You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing, software
+ * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * See the License for the specific language governing permissions and
+ * * limitations under the License. For additional information regarding
+ * * copyright in this work, please see the NOTICE file in the top level
+ * * directory of this distribution.
+ *
+ */
+
+package org.apache.usergrid.persistence.collection.serialization;
+
+
+import java.util.Arrays;
+import java.util.UUID;
+
+import org.junit.Test;
+
+import org.apache.usergrid.persistence.collection.CollectionScope;
+import org.apache.usergrid.persistence.collection.impl.CollectionScopeImpl;
+import org.apache.usergrid.persistence.collection.mvcc.MvccEntitySerializationStrategy;
+import org.apache.usergrid.persistence.collection.mvcc.entity.MvccEntity;
+import org.apache.usergrid.persistence.collection.mvcc.entity.impl.MvccEntityImpl;
+import org.apache.usergrid.persistence.collection.serialization.impl.EntityRepairImpl;
+import org.apache.usergrid.persistence.model.entity.Entity;
+import org.apache.usergrid.persistence.model.entity.Id;
+import org.apache.usergrid.persistence.model.entity.SimpleId;
+import org.apache.usergrid.persistence.model.field.StringField;
+import org.apache.usergrid.persistence.model.util.UUIDGenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+
+/**
+ * Tests the entity repair task
+ */
+public class EntityRepairImplTest {
+
+
+ /**
+ * Tests changing from a full version to 2 updates, ensures we have a proper output
+ */
+ @Test
+ public void testSimpleRolling() {
+
+ final SerializationFig serializationFig = mock( SerializationFig.class );
+
+ when( serializationFig.getBufferSize() ).thenReturn( 10 );
+
+
+ final Id simpleId = new SimpleId( "entity" );
+
+ final Entity v1Entity = new Entity( simpleId );
+
+
+ v1Entity.setField( new StringField( "field1", "value1" ) );
+ v1Entity.setField( new StringField( "field2", "value2" ) );
+
+
+ final MvccEntityImpl v1 =
+ new MvccEntityImpl( simpleId, UUIDGenerator.newTimeUUID(), MvccEntity.Status.COMPLETE, v1Entity );
+
+
+ final Entity v2Entity = new Entity( simpleId );
+ v2Entity.setField( new StringField( "field1", "value1.1" ) );
+
+ final MvccEntityImpl v2 =
+ new MvccEntityImpl( simpleId, UUIDGenerator.newTimeUUID(), MvccEntity.Status.PARTIAL, v2Entity );
+
+
+ final Entity v3Entity = new Entity( simpleId );
+ v3Entity.setField( new StringField( "field2", "value1.2" ) );
+
+ final MvccEntityImpl v3 =
+ new MvccEntityImpl( simpleId, UUIDGenerator.newTimeUUID(), MvccEntity.Status.PARTIAL, v3Entity );
+
+
+ final MvccEntitySerializationStrategy mvccEntitySerializationStrategy =
+ mock( MvccEntitySerializationStrategy.class );
+
+
+ final Id applicationId = new SimpleId( "application" );
+
+ final CollectionScope scope = new CollectionScopeImpl( applicationId, applicationId, "users" );
+
+ //mock up returning
+ when( mvccEntitySerializationStrategy
+ .load( scope, simpleId, v3.getVersion(), serializationFig.getBufferSize() ) )
+ .thenReturn( Arrays.<MvccEntity>asList( v3, v2, v1 ).iterator() );
+
+
+ EntityRepairImpl entityRepair = new EntityRepairImpl( mvccEntitySerializationStrategy, serializationFig );
+
+ final MvccEntity returned = entityRepair.maybeRepair( scope, v3 );
+
+ final UUID version = returned.getVersion();
+
+ assertEquals( "Versions should match", v3.getVersion(), version );
+
+
+
+ final Id entityId = returned.getId();
+
+ assertEquals( "Entity Id's match", simpleId, entityId );
+
+
+
+ final Entity finalVersion = returned.getEntity().get();
+
+ final Object expectedField1Value = v2.getEntity().get().getField( "field1" ).getValue();
+
+ final Object returnedField1Value = finalVersion.getField( "field1" ).getValue();
+
+ assertEquals( "Same field value", expectedField1Value, returnedField1Value );
+
+
+
+ final Object expectedField2Value = v3.getEntity().get().getField( "field2" ).getValue();
+
+ final Object returnedField2Value = finalVersion.getField( "field2" ).getValue();
+
+ assertEquals( "Same field value", expectedField2Value, returnedField2Value );
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/f7d406e3/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
index 6780115..ba5ebce 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImplTest.java
@@ -649,7 +649,7 @@ public class MvccEntitySerializationStrategyImplTest {
public void loadParamEntityId() throws ConnectionException {
serializationStrategy
- .load( new CollectionScopeImpl(new SimpleId( "organization" ), new SimpleId( "test" ), "test" ), null, UUIDGenerator.newTimeUUID() );
+ .load( new CollectionScopeImpl(new SimpleId( "organization" ), new SimpleId( "test" ), "test" ), (Id)null, UUIDGenerator.newTimeUUID() );
}