public void WhenSubscribeToEvent_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);
                client.AuthorizeAsync("test", "password").Wait();

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SubscribeToEventAsync("PublicaFeatured").Result;

                // Assert
                Assert.True(ok);
            }
        }
        public void WhenSetEventFrequency_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);
                client.AuthorizeAsync("test", "password").Wait();

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SetEventFrequencyAsync(Models.Accounts.NotificationFrequency.ByWeek).Result;

                // Assert
                Assert.True(ok);
            }
        }
        public void WhenSetEventFrequency_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);
                client.AuthorizeAsync("test", "password").Wait();

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SetEventFrequencyAsync(Models.Accounts.NotificationFrequency.ByWeek).Result;

                // Assert
                Assert.True(ok);
            }
        }
        public void WhenSetEventFrequencyWithUnathorizedUser_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SetEventFrequencyAsync(Models.Accounts.NotificationFrequency.ByWeek).Result;

                // Assert
                Assert.False(ok);
                Assert.NotEmpty(request.Error.Messages);
                Assert.Contains("Not connected", request.Error.Messages.First());
            }
        }
        public void WhenSubscribeToEventWithUnathorizedUser_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SubscribeToEventAsync("PublicaFeatured").Result;

                // Assert
                Assert.False(ok);
                Assert.NotEmpty(request.Error.Messages);
                Assert.Contains("Not connected", request.Error.Messages.First());
            }
        }
        public void WhenSetEventFrequencyWithUnathorizedUser_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SetEventFrequencyAsync(Models.Accounts.NotificationFrequency.ByWeek).Result;

                // Assert
                Assert.False(ok);
                Assert.NotEmpty(request.Error.Messages);
                Assert.Contains("Not connected", request.Error.Messages.First());
            }
        }
        public void WhenListAllEvents_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);
                var request = client.CreateAccountEventRequest();

                // Act
                var events = request.ListAllEventsAsync().Result;

                // Assert
                Assert.NotEmpty(events);
                Assert.Equal(1, events.Count());
                Assert.Equal(6, events.First().Id);
                Assert.Equal("MemberHasSameInterest", events.First().Label);
                Assert.Equal("MemberHasSameInterest", events.First().Name);
            }
        }
        public void WhenListAllEvents_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client  = new YouScribeClient(TestHelpers.BaseUrl);
                var request = client.CreateAccountEventRequest();

                // Act
                var events = request.ListAllEventsAsync().Result;

                // Assert
                Assert.NotEmpty(events);
                Assert.Equal(1, events.Count());
                Assert.Equal(6, events.First().Id);
                Assert.Equal("MemberHasSameInterest", events.First().Label);
                Assert.Equal("MemberHasSameInterest", events.First().Name);
            }
        }
        public void WhenSubscribeToEventWithUnathorizedUser_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.SubscribeToEventAsync("PublicaFeatured").Result;

                // Assert
                Assert.False(ok);
                Assert.NotEmpty(request.Error.Messages);
                Assert.Contains("Not connected", request.Error.Messages.First());
            }
        }
        public void WhenUnSubscribeToEvent_ThenCheckResponse()
        {
            // Arrange
            using (SimpleServer.Create(TestHelpers.BaseUrl, EventHandler))
            {
                var client = new YouScribeClient(TestHelpers.BaseUrl);
                client.AuthorizeAsync("test", "password").Wait();

                var request = client.CreateAccountEventRequest();

                // Act
                bool ok = request.UnSubscribeToEventAsync(new Models.Accounts.AccountEventModel { Id = 6 }).Result;

                // Assert
                Assert.True(ok);
            }
        }