public IEnumerable <ProxySync.PreCommitResponse> TestPreCommitVersionCompare_FacebookCampaign(long differentBetweenHostingVersionAndLocalVersion, out ProxySync.ObjectState facebookCampaignObjectState) { facebookCampaignObjectState = NextObjectState(); facebookCampaignObjectState.HostingId = -1; facebookCampaignObjectState.ObjectDetailType = (int)SEMObjectDetailType.FacebookCampaign; facebookCampaignObjectState.IsVersionCompare = true; facebookCampaignObjectState.EngineType = (int)SearchEngineType.Facebook; facebookCampaignObjectState.LocalId = SyncDataServiceHelper.GenerateLocalId(facebookCampaignObjectState); TblFacebookCampaign facebookCampaignEntity = NextFacebookCampaignEntity(); facebookCampaignEntity.Id = facebookCampaignObjectState.ObjectId; facebookCampaignEntity.ParentId = facebookCampaignObjectState.ParentId; facebookCampaignEntity.LocalId = facebookCampaignObjectState.HostingId; facebookCampaignEntity.Version = facebookCampaignObjectState.LocalVersion + differentBetweenHostingVersionAndLocalVersion; RegisterCreatedFacebookCampaignEntityForCleanup(facebookCampaignEntity); InsertFacebookCampaignIntoDB(facebookCampaignEntity); ProxySync.PreCommitResponse[] responses = null; ProxySync.ObjectState facebookCampaignObejctStateForLambdaExpression = facebookCampaignObjectState; WCFHelper.Using <SyncDataServiceClient>(new SyncDataServiceClient(), client => { responses = client.PreCommit(new ProxySync.ObjectState[] { facebookCampaignObejctStateForLambdaExpression }); }); return(responses); }
public bool DoesExistFacebookCampaignEntityInDB(long id, out TblFacebookCampaign facebookCampaignEntity) { var result = from entity in SEMObjects.TblFacebookCampaign where entity.Id == id select entity; if (result.ToArray().Length != 1) { facebookCampaignEntity = null; return(false); } else { facebookCampaignEntity = result.ToArray()[0]; return(true); } }
public TblFacebookCampaign NextFacebookCampaignEntity() { DateTime now = DateTime.Now; TblFacebookCampaign tblFacebookCampaign = new TblFacebookCampaign(); tblFacebookCampaign.LocalStatus = RandomData.NextByte(); tblFacebookCampaign.LocalState = RandomData.NextByte(); tblFacebookCampaign.LastUpdateTime = RandomData.NextDateTime(new TimeSpan(1, 0, 0, 0)); tblFacebookCampaign.LocalParentId = (Int64)RandomData.NextUInt32(); tblFacebookCampaign.LocalId = (Int64)RandomData.NextUInt32(); tblFacebookCampaign.Id = (Int64)RandomData.NextUInt32(); tblFacebookCampaign.ParentId = (Int64)RandomData.NextUInt32(); tblFacebookCampaign.Name = RandomData.NextUnicodeWord(500); tblFacebookCampaign.Budget = (decimal)RandomData.NextDouble(0.02, 1); tblFacebookCampaign.BudgetType = RandomData.NextInt32(); tblFacebookCampaign.StartTime = tblFacebookCampaign.LastUpdateTime + new TimeSpan(1, 0, 0); tblFacebookCampaign.StopTime = tblFacebookCampaign.StartTime + new TimeSpan(1, 0, 0); tblFacebookCampaign.Status = RandomData.NextInt32(); tblFacebookCampaign.Version = (Int64)RandomData.NextInt16(); return(tblFacebookCampaign); }
public void CompareFacebookCampaignDTOAndEntityObject(ProxyDTO.Facebook.FacebookCampaignDTO facebookCampaignDTO, TblFacebookCampaign facebookCampaignEntity, long localId, long localParentId, int version) { Assert.AreEqual(facebookCampaignDTO.Id, facebookCampaignEntity.Id, "The campaign id should be equal!!"); Assert.AreEqual(localId, facebookCampaignEntity.LocalId, "The campaign local id should be equal!!"); Assert.AreEqual(localParentId, facebookCampaignEntity.LocalParentId, "The campaign local parent id should be equal!!"); Assert.AreEqual(facebookCampaignDTO.ParentId, facebookCampaignEntity.ParentId, "The campaign parent id should be equal!!"); Assert.AreEqual(facebookCampaignDTO.LocalStatus, facebookCampaignEntity.LocalStatus, "The campaign local status should be equal!!"); Assert.AreEqual(facebookCampaignDTO.LocalState, facebookCampaignEntity.LocalState, "The campaign local state should be equal!!"); Assert.AreEqual(facebookCampaignDTO.Name, facebookCampaignEntity.Name, "The campaign name should be equal!!"); Assert.AreEqual(facebookCampaignDTO.Status, facebookCampaignEntity.Status, "The campaign status should be equal!!"); Assert.AreEqual(version, facebookCampaignEntity.Version, "The campaign version should be equal!!"); }
public void RegisterCreatedFacebookCampaignEntityForCleanup(TblFacebookCampaign facebookCampaignEntity) { this.createdFacebookCampaignEntitiesForCleanup.Add(facebookCampaignEntity); }
public void InsertFacebookCampaignIntoDB(TblFacebookCampaign facebookCampaignEntity) { SEMObjects.TblFacebookCampaign.InsertOnSubmit(facebookCampaignEntity); SEMObjects.SubmitChanges(); }
public void TestMultipleClientsDoPreCommit_FacebookCampaign() { ProxySync.ObjectState facebookCampaignObjectState = SyncDataServiceHelper.NextObjectState(); facebookCampaignObjectState.HostingId = -1; facebookCampaignObjectState.ObjectDetailType = (int)SEMObjectDetailType.FacebookCampaign; facebookCampaignObjectState.IsVersionCompare = true; facebookCampaignObjectState.EngineType = (int)SearchEngineType.Facebook; facebookCampaignObjectState.LocalId = SyncDataServiceHelper.GenerateLocalId(facebookCampaignObjectState); TblFacebookCampaign facebookCampaignEntity = SyncDataServiceHelper.NextFacebookCampaignEntity(); facebookCampaignEntity.Id = facebookCampaignObjectState.ObjectId; facebookCampaignEntity.ParentId = facebookCampaignObjectState.ParentId; facebookCampaignEntity.Version = facebookCampaignObjectState.LocalVersion; SyncDataServiceHelper.RegisterCreatedFacebookCampaignEntityForCleanup(facebookCampaignEntity); SyncDataServiceHelper.InsertFacebookCampaignIntoDB(facebookCampaignEntity); var taskA = Task.Factory.StartNew <ProxySync.PreCommitResponse[]>(() => { ProxySync.PreCommitResponse[] responsesA = null; ProxySync.ObjectState facebookCampaignObejctStateForLambdaExpressionA = facebookCampaignObjectState; WCFHelper.Using <SyncDataServiceClient>(new SyncDataServiceClient(), client => { responsesA = client.PreCommit(new ProxySync.ObjectState[] { facebookCampaignObejctStateForLambdaExpressionA }); }); return(responsesA); }); var taskB = Task.Factory.StartNew <ProxySync.PreCommitResponse[]>(() => { ProxySync.PreCommitResponse[] responsesB = null; ProxySync.ObjectState facebookCampaignObejctStateForLambdaExpressionB = facebookCampaignObjectState; WCFHelper.Using <SyncDataServiceClient>(new SyncDataServiceClient(), client => { responsesB = client.PreCommit(new ProxySync.ObjectState[] { facebookCampaignObejctStateForLambdaExpressionB }); }); return(responsesB); }); Task.WaitAll(taskA, taskB); //Verify two task results if (taskA.Result == null && taskB.Result == null) { Assert.Fail("The two clients all return NULL!!"); } if (taskA.Result != null && taskB.Result != null) { Assert.Fail("The two clients all don't return NULL!!"); } if (taskA.Result != null && taskB.Result == null) { Assert.AreEqual(1, taskA.Result.Length, "The length of PreCommitResponse array should be equal 1!!"); Assert.AreEqual(facebookCampaignObjectState.LocalId, taskA.Result[0].GrainId, "The inputed objectstate object's LocalId should be equal to PreCommitResponse's GrainId returned from Server!!"); } if (taskA.Result == null && taskB.Result != null) { Assert.AreEqual(1, taskB.Result.Length, "The length of PreCommitResponse array should be equal 1!!"); Assert.AreEqual(facebookCampaignObjectState.LocalId, taskB.Result[0].GrainId, "The inputed objectstate object's LocalId should be equal to PreCommitResponse's GrainId returned from Server!!"); } }