public Task TestBecome() { IObjectState state = new MutableObjectState { ObjectId = "some0neTol4v4", ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; var mockController = new Mock <IAVUserController>(); mockController.Setup(obj => obj.GetUserAsync("llaKcolnu", It.IsAny <CancellationToken>())).Returns(Task.FromResult(state)); AVPlugins.Instance = new AVPlugins { UserController = mockController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); return(AVUser.BecomeAsync("llaKcolnu").ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockController.Verify(obj => obj.GetUserAsync("llaKcolnu", It.IsAny <CancellationToken>()), Times.Exactly(1)); var user = t.Result; Assert.AreEqual("some0neTol4v4", user.ObjectId); Assert.AreEqual("llaKcolnu", user.SessionToken); })); }
public Task TestUpgradeToRevocableSession() { IObjectState state = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; var mockController = new Mock <IAVSessionController>(); mockController.Setup(obj => obj.UpgradeToRevocableSessionAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(state)); var mockCurrentUserController = new Mock <IAVCurrentUserController>(); AVPlugins.Instance = new AVPlugins { SessionController = mockController.Object, CurrentUserController = mockCurrentUserController.Object, }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); CancellationTokenSource source = new CancellationTokenSource(); return(AVSessionExtensions.UpgradeToRevocableSessionAsync("someSession", source.Token).ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockController.Verify(obj => obj.UpgradeToRevocableSessionAsync(It.Is <string>(sessionToken => sessionToken == "someSession"), source.Token), Times.Exactly(1)); Assert.AreEqual("llaKcolnu", t.Result); })); }
public void TestIsAuthenticatedWithOtherParseUser() { IObjectState state = new MutableObjectState { ObjectId = "wagimanPutraPetir", ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; IObjectState state2 = new MutableObjectState { ObjectId = "wagimanPutraPetir2", ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(state, "_User"); AVUser user2 = AVObjectExtensions.FromState <AVUser>(state2, "_User"); var mockCurrentUserController = new Mock <IAVCurrentUserController>(); mockCurrentUserController.Setup(obj => obj.GetAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(user)); AVPlugins.Instance = new AVPlugins { CurrentUserController = mockCurrentUserController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); Assert.False(user2.IsAuthenticated); }
public Task TestLogOut() { IObjectState state = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "r:llaKcolnu" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(state, "_User"); var mockCurrentUserController = new Mock <IAVCurrentUserController>(); mockCurrentUserController.Setup(obj => obj.GetAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(user)); var mockSessionController = new Mock <IAVSessionController>(); mockSessionController.Setup(c => c.IsRevocableSessionToken(It.IsAny <string>())).Returns(true); AVPlugins.Instance = new AVPlugins { CurrentUserController = mockCurrentUserController.Object, SessionController = mockSessionController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); return(AVUser.LogOutAsync().ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockCurrentUserController.Verify(obj => obj.LogOutAsync(It.IsAny <CancellationToken>()), Times.Exactly(1)); mockSessionController.Verify(obj => obj.RevokeAsync("r:llaKcolnu", It.IsAny <CancellationToken>()), Times.Exactly(1)); })); }
private void Start() { var netComponent = World.CreateComponent <NetComponent>(); AVObject.RegisterSubclass <Player>(); var uiComponent = World.CreateComponent <UIComponent>(); uiComponent.SyncOpenView <LoginView>(); }
static TMLobby() { AVObject.RegisterSubclass <TMJsonRequest>(); AVObject.RegisterSubclass <TMRoom>(); AVObject.RegisterSubclass <TMClientInfoInRoom>(); AVObject.RegisterSubclass <TMGame>(); AVObject.RegisterSubclass <TMPlayer>(); AVObject.RegisterSubclass <TMCharacter>(); }
public Task TestUnlink() { IObjectState state = new MutableObjectState { ObjectId = "some0neTol4v4", ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" }, { "authData", new Dictionary <string, object> { { "parse", new Dictionary <string, object>() } } } } }; IObjectState newState = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "garden", "ofWords" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(state, "_User"); var mockObjectController = new Mock <IAVObjectController>(); mockObjectController.Setup(obj => obj.SaveAsync(It.IsAny <IObjectState>(), It.IsAny <IDictionary <string, IAVFieldOperation> >(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(newState)); var mockCurrentUserController = new Mock <IAVCurrentUserController>(); mockCurrentUserController.Setup(obj => obj.IsCurrent(user)).Returns(true); AVPlugins.Instance = new AVPlugins { ObjectController = mockObjectController.Object, CurrentUserController = mockCurrentUserController.Object, }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); return(user.UnlinkFromAsync("parse", CancellationToken.None).ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockObjectController.Verify(obj => obj.SaveAsync(It.IsAny <IObjectState>(), It.IsAny <IDictionary <string, IAVFieldOperation> >(), It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.Exactly(1)); Assert.False(user.IsDirty); Assert.NotNull(user.GetAuthData()); Assert.False(user.GetAuthData().ContainsKey("parse")); Assert.AreEqual("some0neTol4v4", user.ObjectId); Assert.AreEqual("ofWords", user["garden"]); })); }
public void OnParseInitialized() { AVObject.RegisterSubclass <AVInstallation>(); AVPlugins.Instance.SubclassingController.AddRegisterHook(typeof(AVInstallation), () => { AVPushPlugins.Instance.CurrentInstallationController.ClearFromMemory(); }); AVPushPlugins.Instance.DeviceInfoController.Initialize(); }
public Task TestSubClassQuery() { AVObject.RegisterSubclass <Employee>(); var query = new AVQuery <Employee>(); return(query.FindAsync().ContinueWith(t => { var first = t.Result.FirstOrDefault(); Assert.True(first.GetType() == typeof(Employee)); })); }
public void TestGetQuery() { AVObject.RegisterSubclass <SubClass>(); AVQuery <AVObject> query = AVObject.GetQuery("UnregisteredSubClass"); Assert.AreEqual("UnregisteredSubClass", query.GetClassName()); Assert.Throws <ArgumentException>(() => AVObject.GetQuery("SubClass")); AVPlugins.Instance.SubclassingController.UnregisterSubclass(typeof(SubClass)); }
static void Main(string[] args) { AVObject.RegisterSubclass <AVUser>(); Cloud cloud = new Cloud(); cloud.OnLogIn((AVUser user) => { Console.WriteLine($"{user.Username} loged in"); }); cloud.UseLog(); GetHooks(cloud); cloud.Start(args); }
public void TestRegisterSubclass() { Assert.Throws <InvalidCastException>(() => AVObject.Create <SubClass>()); AVObject.RegisterSubclass <SubClass>(); Assert.DoesNotThrow(() => AVObject.Create <SubClass>()); AVPlugins.Instance.SubclassingController.UnregisterSubclass(typeof(UnregisteredSubClass)); Assert.DoesNotThrow(() => AVObject.Create <SubClass>()); AVPlugins.Instance.SubclassingController.UnregisterSubclass(typeof(SubClass)); Assert.Throws <InvalidCastException>(() => AVObject.Create <SubClass>()); }
public void TestCurrentUserWithEmptyResult() { var mockCurrentUserController = new Mock <IAVCurrentUserController>(); AVPlugins.Instance = new AVPlugins { CurrentUserController = mockCurrentUserController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); Assert.Null(AVUser.CurrentUser); }
public Task TestUserSave() { IObjectState state = new MutableObjectState { ObjectId = "some0neTol4v4", ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" }, { "username", "ihave" }, { "password", "adream" } } }; IObjectState newState = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "Alliance", "rekt" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(state, "_User"); var mockObjectController = new Mock <IAVObjectController>(); mockObjectController.Setup(obj => obj.SaveAsync(It.IsAny <IObjectState>(), It.IsAny <IDictionary <string, IAVFieldOperation> >(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(newState)); AVPlugins.Instance = new AVPlugins { ObjectController = mockObjectController.Object, CurrentUserController = new Mock <IAVCurrentUserController>().Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); user["Alliance"] = "rekt"; return(user.SaveAsync().ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockObjectController.Verify(obj => obj.SaveAsync(It.IsAny <IObjectState>(), It.IsAny <IDictionary <string, IAVFieldOperation> >(), It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.Exactly(1)); Assert.False(user.IsDirty); Assert.AreEqual("ihave", user.Username); Assert.False(user.GetState().ContainsKey("password")); Assert.AreEqual("some0neTol4v4", user.ObjectId); Assert.AreEqual("rekt", user["Alliance"]); })); }
private void Awake() { //DataManager.SaveData("candy", 500); Application.targetFrameRate = 90; AVObject.RegisterSubclass <PlayerData>(); int firstLaunch = PlayerPrefs.GetInt("launch"); if (firstLaunch == 0) { Debug.Log("第一次启动游戏"); PlayerPrefs.SetInt("launch", 1); DataManager.InitData(); } }
public Task TestSubclassSaveList() { AVObject.RegisterSubclass <Employee>(); var tom = new Employee(); var className = tom.ClassName; tom.Tags = new List <string>() { "a", "b" }; tom.DisplayName = "Tom"; // TODO (hallucinogen): do this return(tom.SaveAsync()); }
internal static void Initialize(string applicationId, string applicationKey, string apiHost) { lock (mutex) { HostName = HostName ?? new Uri(apiHost); ApplicationId = applicationId; ApplicationKey = applicationKey; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVInstallation>(); AVObject.RegisterSubclass <AVRole>(); AVObject.RegisterSubclass <AVSession>(); // Give platform-specific libraries a chance to do additional initialization. //PlatformHooks.Initialize(); } }
public Task TestRequestPasswordReset() { var mockController = new Mock <IAVUserController>(); AVPlugins.Instance = new AVPlugins { UserController = mockController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); return(AVUser.RequestPasswordResetAsync("*****@*****.**").ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockController.Verify(obj => obj.RequestPasswordResetAsync("*****@*****.**", It.IsAny <CancellationToken>()), Times.Exactly(1)); })); }
public void TestParseObjectCreateWithGeneric() { AVObject.RegisterSubclass <SubClass>(); AVObject obj = AVObject.Create <SubClass>(); Assert.AreEqual("SubClass", obj.ClassName); Assert.Null(obj.CreatedAt); Assert.True(obj.IsDataAvailable); Assert.True(obj.IsDirty); AVObject obj2 = AVObject.CreateWithoutData <SubClass>("waGiManPutr4Pet1r"); Assert.AreEqual("SubClass", obj2.ClassName); Assert.AreEqual("waGiManPutr4Pet1r", obj2.ObjectId); Assert.Null(obj2.CreatedAt); Assert.False(obj2.IsDataAvailable); Assert.False(obj2.IsDirty); }
public Task TestLogIn() { IObjectState state = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" }, { "username", "ihave" }, { "password", "adream" } } }; IObjectState newState = new MutableObjectState { ObjectId = "some0neTol4v4" }; var mockController = new Mock <IAVUserController>(); mockController.Setup(obj => obj.LogInAsync("ihave", "adream", It.IsAny <CancellationToken>())).Returns(Task.FromResult(newState)); AVPlugins.Instance = new AVPlugins { UserController = mockController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); return(AVUser.LogInAsync("ihave", "adream").ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockController.Verify(obj => obj.LogInAsync("ihave", "adream", It.IsAny <CancellationToken>()), Times.Exactly(1)); var user = t.Result; Assert.False(user.IsDirty); Assert.Null(user.Username); Assert.AreEqual("some0neTol4v4", user.ObjectId); })); }
public Task TestGetCurrentSession() { IObjectState sessionState = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "newllaKcolnu" } } }; var mockController = new Mock <IAVSessionController>(); mockController.Setup(obj => obj.GetSessionAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(sessionState)); IObjectState userState = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(userState, "_User"); var mockCurrentUserController = new Mock <IAVCurrentUserController>(); mockCurrentUserController.Setup(obj => obj.GetAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(user)); AVPlugins.Instance = new AVPlugins { SessionController = mockController.Object, CurrentUserController = mockCurrentUserController.Object, }; AVObject.RegisterSubclass <AVSession>(); return(AVSession.GetCurrentSessionAsync().ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockController.Verify(obj => obj.GetSessionAsync(It.Is <string>(sessionToken => sessionToken == "llaKcolnu"), It.IsAny <CancellationToken>()), Times.Exactly(1)); var session = t.Result; Assert.AreEqual("newllaKcolnu", session.SessionToken); })); }
/// <summary> /// Authenticates this client as belonging to your application. This must be /// called before your application can use the LeanCloud library. The recommended /// way is to put a call to <c>ParseFramework.Initialize</c> in your /// Application startup. /// </summary> /// <param name="configuration">The configuration to initialize LeanCloud with. /// </param> public static void Initialize(Configuration configuration) { lock (mutex) { var nodeHash = configuration.ApplicationId.Split('-'); if (nodeHash.Length > 1) { if (nodeHash[1].Trim() == "9Nh9j0Va") { configuration.Region = Configuration.AVRegion.Vendor_Tencent; } } CurrentConfiguration = configuration; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVRole>(); AVObject.RegisterSubclass <AVSession>(); AVModuleController.Instance.LeanCloudDidInitialize(); } }
public static void InitLeanCloud() { //初始化LeanCloud AVClient.Initialize(AppID, AppKey); //指定服务节点(CN/US) //AVClient.Configuration configuration = new AVClient.Configuration() //{ // ApplicationId = AppID, // ApplicationKey = AppKey, // AdditionalHTTPHeaders = new Dictionary<string, string>(), // EngineServer = new Uri(""), // Region = AVClient.Configuration.AVRegion.Public_CN, // VersionInfo = new AVClient.Configuration.VersionInformation() { // BuildVersion = "V.1.0.0", // DisplayVersion ="Client 1.0.0", // OSVersion = "Windows7" // } //}; //注册类映射 AVObject.RegisterSubclass <Sport>(); }
public void TestCurrentUser() { IObjectState state = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(state, "_User"); var mockCurrentUserController = new Mock <IAVCurrentUserController>(); mockCurrentUserController.Setup(obj => obj.GetAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(user)); AVPlugins.Instance = new AVPlugins { CurrentUserController = mockCurrentUserController.Object, }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); Assert.AreEqual(user, AVUser.CurrentUser); }
public Task TestRevocableSession() { IObjectState state = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "llaKcolnu" } } }; IObjectState newState = new MutableObjectState { ServerData = new Dictionary <string, object>() { { "sessionToken", "r:llaKcolnu" } } }; AVUser user = AVObjectExtensions.FromState <AVUser>(state, "_User"); var mockSessionController = new Mock <IAVSessionController>(); mockSessionController.Setup(obj => obj.UpgradeToRevocableSessionAsync("llaKcolnu", It.IsAny <CancellationToken>())).Returns(Task.FromResult(newState)); AVPlugins.Instance = new AVPlugins { SessionController = mockSessionController.Object }; AVObject.RegisterSubclass <AVUser>(); AVObject.RegisterSubclass <AVSession>(); return(user.UpgradeToRevocableSessionAsync(CancellationToken.None).ContinueWith(t => { Assert.False(t.IsFaulted); Assert.False(t.IsCanceled); mockSessionController.Verify(obj => obj.UpgradeToRevocableSessionAsync("llaKcolnu", It.IsAny <CancellationToken>()), Times.Exactly(1)); Assert.AreEqual("r:llaKcolnu", user.SessionToken); })); }
private void InitializeDataClass() { AVObject.RegisterSubclass <ACCOUNT>(); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); AVObject.RegisterSubclass <Team>(); }
public static void UseLambda(this Cloud cloud) { // case 1. use EngineObjectHookContext cloud.UseHook("Todo", EngineHookType.BeforeSave, (context) => { var todo = context.TheObject; var by = context.By; return(Task.FromResult(context.TheObject)); }); cloud.BeforeSave("Todo", (context) => { return(Task.FromResult(context.TheObject)); }); // case 2. use TheObject cloud.UseHook("Todo", EngineHookType.BeforeSave, (AVObject todoObj) => { return(Task.FromResult(todoObj)); }); cloud.BeforeSave("Todo", (AVObject todoObj) => { return(Task.FromResult(todoObj)); }); // case 3. use TheObject and user cloud.UseHook("Todo", EngineHookType.BeforeSave, (AVObject todoObj, AVUser by) => { return(Task.FromResult(todoObj)); }); cloud.BeforeSave("Todo", (AVObject todoObj, AVUser by) => { return(Task.FromResult(todoObj)); }); // case 3. use sub-class AVObject.RegisterSubclass <Todo>(); cloud.UseHook <Todo>(EngineHookType.BeforeSave, (Todo theTodoObj) => { // theTodoObj is an Todo instance. return(Task.FromResult(theTodoObj)); }); cloud.UseHook <Todo>(EngineHookType.BeforeSave, (Todo theTodoObj, AVUser by) => { return(Task.FromResult(theTodoObj)); }); cloud.BeforeSave <Todo>((todo) => { // todo is an Todo instance. return(Task.FromResult(todo)); }); cloud.BeforeSave <Todo>((todo, by) => { // todo is an Todo instance. return(Task.FromResult(todo)); }); cloud.BeforeUpdate("Todo", review => { var updatedKeys = review.GetUpdatedKeys(); if (updatedKeys.Contains("comment")) { var comment = review.Get <string>("comment"); if (comment.Length > 140) { throw new EngineException(400, "comment 长度不得超过 140 字符"); } } return(Task.FromResult(true)); }); EngineHookDelegateSynchronous afterPostHook = (post) => { }; cloud.AfterSave("Post", (EngineObjectHookDeltegateSynchronous)(async post => { // 直接修改并保存对象不会再次触发 after update hook 函数 post["foo"] = "bar"; await post.SaveAsync(); // 如果有 FetchAsync 操作,则需要在新获得的对象上调用相关的 disable 方法 // 来确保不会再次触发 Hook 函数 await post.FetchAsync(); post.DisableAfterHook(); post["foo"] = "bar"; // 如果是其他方式构建对象,则需要在新构建的对象上调用相关的 disable 方法 // 来确保不会再次触发 Hook 函数 post = AVObject.CreateWithoutData <AVObject>(post.ObjectId); post.DisableAfterHook(); await post.SaveAsync(); })); }
public void SetUp() { AVObject.RegisterSubclass <AVInstallation>(); }
public void SetUp() { AVObject.RegisterSubclass <AVSession>(); AVObject.RegisterSubclass <AVUser>(); }