Exemple #1
0
        public async Task TestObjectHash()
        {
            //given
            await FHClient.Init();

            var testObject = new JObject();

            testObject["testKey"]     = "Test Data";
            testObject["testBoolKey"] = true;
            testObject["testNumKey"]  = 10;
            var arr = new JArray {
                "obj1", "obj2"
            };

            testObject["testArrayKey"] = arr;
            var obj = new JObject();

            obj["obj3key"]            = "obj3";
            obj["obj4key"]            = "obj4";
            testObject["testDictKey"] = obj;

            //when
            var hash = FHSyncUtils.GenerateSHA1Hash(testObject);

            //then
            Assert.AreEqual("5f4675723d658919ede35fac62fade8c6397df1d", hash);
        }
Exemple #2
0
        public async Task ShouldOAuthRequest()
        {
            await FHClient.Init();

            //given
            ServiceFinder.RegisterType <IOAuthClientHandlerService, MockOAuthClient>();

            var json        = JObject.Parse(@"{
                ""hosts"": {""host"": ""HOST""}
             }");
            var config      = new FHConfig(new MockDeviceService());
            var props       = new CloudProps(json, config);
            var authRequest = new FHAuthRequest(props);

            authRequest.SetAuthUser("gmail", "user", "password");

            var mockHttpCLient =
                new MockHttpClient {
                Content = "{\"status\": \"ok\", \"url\": \"http://oauthurl.url\"}"
            };

            FHHttpClientFactory.Get = () => mockHttpCLient;

            //when
            var response = await authRequest.ExecAsync();

            //then
            Assert.IsNotNull(response);
            var responseParams = response.GetResponseAsDictionary();

            Assert.IsNotNull(responseParams);
            Assert.AreEqual("token", responseParams["sessionToken"]);
        }
Exemple #3
0
        public async Task ShouldAddRemoteCreatedRecord()
        {
            //given
            await FHClient.Init();

            var dataset = new MockResponseDataset <TaskModel>("dataset");
            var task    = new TaskModel
            {
                TaksName = "test"
            };

            //when
            task = dataset.Create(task);
            dataset.MockResponse = dataset.RemoteCreatedResponse;
            await dataset.StartSyncLoop();

            //then
            var list = dataset.List();

            Assert.AreEqual(2, list.Count);
            Assert.IsTrue(list.Contains(task));
            Assert.IsTrue(list.Contains(new TaskModel()
            {
                UID = "561b7cf1810880dc18000029"
            }));
        }
Exemple #4
0
        public async Task ShouldDeleteRecord()
        {
            //given
            await FHClient.Init();

            var dataset = new MockResponseDataset <TaskModel>("dataset");

            dataset.MockResponse = dataset.AppliedCreateResponse;
            var task = new TaskModel
            {
                TaksName = "test"
            };

            //when
            task = dataset.Create(task);
            await dataset.StartSyncLoop();

            dataset.Delete(task.UID);

            //then
            var list = dataset.List();

            Assert.AreEqual(0, list.Count);
            Assert.AreEqual(1, dataset.GetPendingRecords().List().Count);
        }
Exemple #5
0
        public async Task ShouldCreatePendingTaskForCreate()
        {
            //given
            await FHClient.Init();

            const string taskName = "task1";
            var          dataset1 = FHSyncDataset <TaskModel> .Build <TaskModel>("set", new FHSyncConfig(), null, null);

            var task = new TaskModel
            {
                TaksName = taskName
            };
            var dataset = dataset1;

            //when
            var savedTask = dataset.Create(task);

            //then
            Assert.IsNotNull(savedTask.UID);
            Assert.AreEqual(1, dataset.GetPendingRecords().List().Count);

            var taskRead = dataset.Read(savedTask.UID);

            Assert.IsNotNull(taskRead);
            Assert.AreEqual(taskName, taskRead.TaksName);
        }
Exemple #6
0
        public async Task ShouldOmitFieldWithNull()
        {
            //given
            await FHClient.Init();

            var dataset = new MockResponseDataset <TaskModel>("dataset")
            {
                KeepSyncParamType = typeof(FHSyncDataset <TaskModel> .FHSyncLoopParams)
            };

            dataset.MockResponse = dataset.AppliedCreateResponse;
            var task = new TaskModel();

            //when
            dataset.Create(task);
            await dataset.StartSyncLoop();

            //then
            Assert.IsTrue(dataset.SyncParams.GetType() == typeof(FHSyncDataset <TaskModel> .FHSyncLoopParams));
            var param = (FHSyncDataset <TaskModel> .FHSyncLoopParams)dataset.SyncParams;

            Assert.AreEqual(1, param.Pendings.Count);
            var post = param.Pendings[0]["post"];

            Assert.IsTrue(post["taskName"] == null);
        }
Exemple #7
0
        public async Task ShouldCreateUpdate()
        {
            //given
            await FHClient.Init();

            var dataset = new MockResponseDataset <TaskModel>("dataset");
            var task    = new TaskModel
            {
                TaksName = "test"
            };

            //when
            task = dataset.Create(task);
            const string name = "super";

            task.TaksName = name;
            dataset.Update(task);

            //then
            var readTask = dataset.Read(task.UID);

            Assert.IsNotNull(readTask);
            Assert.AreEqual(name, readTask.TaksName);

            //when
            dataset.MockResponse = dataset.AwkRespone;
            await dataset.StartSyncLoop();

            //then
            var list = dataset.List();

            Assert.AreEqual(1, list.Count);
            Assert.AreEqual(name, list[0].TaksName);
        }
        private async void InitApp()
        {
            await FHClient.Init();

            progress.Visibility = Visibility.Collapsed;
            app.Visibility      = Visibility.Visible;
        }
Exemple #9
0
        private async void InitApp()
        {
            await FHClient.Init();

            FHClient.RegisterPush(NotificationReceived);
            ShowMessage("App Ready!");
        }
Exemple #10
0
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            // Override point for customization after application launch.
            // If not required for your application you can safely delete this method

            FHClient.Init();

            return(true);
        }
        public async override void ViewDidLoad()
        {
            base.ViewDidLoad();
            FH.SetLogLevel((int)LogService.LogLevels.DEBUG);
            // Perform any additional setup after loading the view, typically from a nib.
            await FHClient.Init();

            ShowMessage("App Ready!");
        }
Exemple #12
0
        private static async Task <MockHttpClient> InitMock()
        {
            await FHClient.Init();

            var mock = new MockHttpClient();

            FHHttpClientFactory.Get = () => mock;
            return(mock);
        }
Exemple #13
0
        public InMemoryDataStoreTest()
        {
            FHClient.Init();
            _ioService = ServiceFinder.Resolve <IIOService>();
            var dataDir        = _ioService.GetDataPersistDir();
            var dataPersistDir = Path.Combine(dataDir, "syncTestDir");

            _dataPersistFile = Path.Combine(dataPersistDir, ".test_data_file");
        }
        public override async void ViewDidLoad()
        {
            base.ViewDidLoad();
            result.Text = "Loading...";
            await FHClient.Init();

            result.Text           = "Response here.";
            button.TouchUpInside += async delegate {
                CallCloudAsync();
            };
        }
Exemple #15
0
 protected override async void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     try
     {
         await FHClient.Init();
     }
     catch (Exception)
     {
     }
 }
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            var response = await FHClient.GetCloudRequest("sso/session/login_host", "POST", null, GetRequestParams()).ExecAsync();

            var resData = response.GetResponseAsJObject();
            var sso     = (string)resData["sso"];

            if (!string.IsNullOrEmpty(sso))
            {
                webView.Visibility = Visibility.Visible;
                webView.Navigate(new Uri(sso));
            }
        }
Exemple #17
0
        /// <summary>
        ///     Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">
        ///     Event data that describes how this page was reached.
        ///     This parameter is typically used to configure the page.
        /// </param>
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            // TODO: Prepare page for display here.

            // TODO: If your application contains multiple pages, ensure that you are
            // handling the hardware Back button by registering for the
            // Windows.Phone.UI.Input.HardwareButtons.BackPressed event.
            // If you are using the NavigationHelper provided by some templates,
            // this event is handled for you.
            var inited = await FHClient.Init();

            Debug.WriteLine("inited " + inited);
        }
Exemple #18
0
        public async Task TestStringHash()
        {
            //given
            await FHClient.Init();

            const string text   = "test";
            var          hasher = ServiceFinder.Resolve <IHashService>();

            //when
            var nativeHashed = hasher.GenerateSha1Hash(text);

            Assert.AreEqual("a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", nativeHashed);
        }
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.splash_screen_activity);
            var init = await FHClient.Init();

            if (init)
            {
                StartActivity(new Intent(this, typeof(ListOfItemsActivity)));
                Finish();
            }
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            try
            {
                await FHClient.Init();

                Label.Text = "Yay, this app is ready to go!";
                //NOTE: other FH methods can only be called after FHClient.init succeeds
            }
            catch (FHException)
            {
                Label.Text = "Oops, an error occurred while processing FHClient.init";
            }
        }
        public void SetUp()
        {
            FHClient.Init();
            _ioService = ServiceFinder.Resolve <IIOService>();
            var dataDir = _ioService.GetDataPersistDir();

            _dataPersistDir = Path.Combine(dataDir, "syncTestDir");
            if (Directory.Exists(_dataPersistDir))
            {
                Directory.Delete(_dataPersistDir);
            }
            _dataPersistFile = Path.Combine(_dataPersistDir, ".test_data_file");
            Debug.WriteLine("Data persist path = {0}", _dataPersistFile);
        }
Exemple #22
0
        public async Task TestReadConfig()
        {
            // given
            await FHClient.Init();

            // when
            var config = FHConfig.GetInstance();

            // then
            Assert.AreEqual("http://192.168.28.34:8001", config.GetHost());
            Assert.AreEqual("project_id_for_test", config.GetProjectId());
            Assert.AreEqual("app_key_for_test", config.GetAppKey());
            Assert.AreEqual("appid_for_test", config.GetAppId());
            Assert.AreEqual("connection_tag_for_test", config.GetConnectionTag());
        }
Exemple #23
0
        public override async void OnMessageReceived(string from, Bundle data)
        {
            if (!ServiceFinder.IsRegistered <IPush>())
            {
                await FHClient.Init();

                FH.RegisterPush(DefaultHandleEvent);
            }

            var push        = ServiceFinder.Resolve <IPush>() as Push;
            var message     = data.GetString("alert");
            var messageData = data.KeySet().ToDictionary(key => key, key => data.GetString(key));

            (push.Registration as GcmRegistration).OnPushNotification(message, messageData);
        }
        public async Task TestLoadingPushConfig()
        {
            //given
            await FHClient.Init();

            //when
            var config = PushBase.ReadConfig();

            //then
            Assert.AreEqual(new Uri("http://192.168.28.34:8001/api/v2/ag-push"), config.UnifiedPushUri);
            Assert.IsNotNull(config.Categories);
            Assert.AreEqual(2, config.Categories.Count);
            Assert.IsTrue(config.Categories.IndexOf("one") != -1);
            Assert.IsTrue(config.Categories.IndexOf("two") != -1);
        }
Exemple #25
0
        public async Task TestReadPushConfig()
        {
            // given
            await FHClient.Init();

            var deviceService = ServiceFinder.Resolve <IDeviceService>();

            // when
            var config = deviceService.ReadPushConfig();

            // then
            Assert.AreEqual("*****@*****.**", config.Alias);
            var cat = config.Categories;

            Assert.AreEqual(2, cat.Count);
            Assert.IsTrue(cat.Contains("one"));
        }
        public async Task ShouldPerformGet()
        {
            //given
            await FHClient.Init();

            var mock = new MockHttpClient();

            FHHttpClientFactory.Get = () => mock;
            const string method = "GET";

            //when
            await FHHttpClient.SendAsync(new Uri("http://localhost/test"), method, null,
                                         JObject.Parse("{'key-data': 'value'}"), TimeSpan.FromSeconds(20));

            //then
            Assert.IsNotNull(mock.Request);
            Assert.AreEqual("http://localhost/test?key-data=\"value\"", mock.Request.RequestUri.ToString());
        }
		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

			var initTask = FHClient.Init();
			initTask.ContinueWith(task => 
			{
				if (!task.IsFaulted)
				{
					StatusLabel.Text = "FH init successful";
				}
				else 
				{
					StatusLabel.Text = "FH init in error";
					Console.WriteLine("Error {0}", e);
				}
			}
		}
Exemple #28
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            //SetContentView (Resource.Layout.Main);

            var initTask = FHClient.Init();

            initTask.ContinueWith(task =>
                                  { RunOnUiThread(() => {
                    if (!task.IsFaulted)
                    {
                        Toast.MakeText(this, "Init complete", ToastLength.Long).Show();
                    }
                    else
                    {
                        Toast.MakeText(this, "Init failed " + task.Exception, ToastLength.Long).Show();
                    }
                }); });
        }
        private async void ShowSignedIn()
        {
            signedIn.Visibility = Visibility.Visible;
            signIn.Visibility   = Visibility.Collapsed;
            webView.Visibility  = Visibility.Collapsed;

            var response = await FHClient.GetCloudRequest("sso/session/valid", "POST", null, GetRequestParams()).ExecAsync();

            if (response.Error == null)
            {
                var data = response.GetResponseAsDictionary();
                name.Text    = string.Format("{0} {1}", data["first_name"], data["last_name"]);
                email.Text   = (string)data["email"];
                expires.Text = ((DateTime)data["expires"]).ToString();
            }
            else
            {
                await new MessageDialog(response.Error.ToString()).ShowAsync();
            }
        }
Exemple #30
0
        public async Task TestGenerateHashWithUnderscoreInKey()
        {
            // given
            await FHClient.Init();

            var data = new JObject();

            data["COMMENTS"]    = "";
            data["FHID"]        = "2553C7ED-9025-48F9-A346-EBE3E3AF943B";
            data["QUESTION_ID"] = 22;
            data["QUES_VALUE"]  = "NO";
            data["VISIT_ID"]    = 100220;
            data["TEST1_ttt"]   = "test";
            data["TEST11_ttt"]  = "test2";

            // when
            var hash = FHSyncUtils.GenerateSHA1Hash(data);

            // then
            Assert.AreEqual("824d6ded431d16fe8f2ab02b0744ca06822a3fff", hash);
        }