Ejemplo n.º 1
0
		public async void PollHandlerCanCreateAndPostPoll()
		{
			PluginStore.InitializePluginStoreNew(builder => new AssemblyCatalog(GetType().Assembly, builder));
			var commandQ = new MockCommandQueue();
			var dataSource = new MockDataSource();
			var repo = dataSource.Repository<User>() as MockRepository<User>;
			repo.ObjectCache.Add("ballouthebear", new User()
			{
				Channels = new Dictionary<string, UserChannel>()
				{
					{
						"#ballouthebear", new UserChannel()
						{
							IsModerator = true
						}
					}

				}
			});
			var rawMessage = "@color=#FF0000;display-name=BallouTheBear;emotes=;subscriber=0;turbo=0;user-id=30514348;user-type= :[email protected] PRIVMSG #ballouthebear :!poll \"Do you like big butts?\";\"Yes\";\"No\"";
			var message = MessageParser.ParseIrcMessage(rawMessage);
			var pollHandler = new PollHandler(commandQ, dataSource, new MockLogger());

			await pollHandler.ReceiveMessage(message);
			var result = commandQ.DequeueCommand();

			Assert.NotNull(result);
			Assert.NotEqual("", result);
			Assert.Contains("Do you like big butts?", result);
		}
Ejemplo n.º 2
0
		public async void ShouldLetAdminsPostLinks()
		{
			var commandQueue = new MockCommandQueue();
			var dataSource = new MockDataSource();
			var repo = dataSource.Repository<User>() as MockRepository<User>;
			repo.ObjectCache.Add("ballouthebear", new User()
			{
				Channels = new Dictionary<string, UserChannel>()
				{
					{
						"#ballouthebear", new UserChannel()
						{
							IsModerator = true
						}
					}

				}
			});

			var linkSpamHandler = new LinkSpamFilter(commandQueue, dataSource);
			var message = MessageParser.ParseIrcMessage("@color=#FF0000;display-name=BallouTheBear;emotes=;subscriber=0;turbo=0;user-id=30514348;user-type= :[email protected] PRIVMSG #ballouthebear :Check it out! www.google.com");
			await linkSpamHandler.ReceiveMessage(message);

			var command = commandQueue.DequeueCommand();
			Assert.Equal(command, "");
		}
Ejemplo n.º 3
0
		public async void PollHandlerRejectsOnlyOneOption()
		{
			var commandQ = new MockCommandQueue();
			var dataSource = new MockDataSource();
			var repo = dataSource.Repository<User>() as MockRepository<User>;
			repo.ObjectCache.Add("ballouthebear", new User()
			{
				Channels = new Dictionary<string, UserChannel>()
				{
					{
						"#ballouthebear", new UserChannel()
						{
							IsModerator = true
						}
					}

				}
			});
			var rawMessage = "@color=#FF0000;display-name=BallouTheBear;emotes=;subscriber=0;turbo=0;user-id=30514348;user-type= :[email protected] PRIVMSG #ballouthebear :!poll \"Do you like big butts?\";\"Yes\"";
			var message = MessageParser.ParseIrcMessage(rawMessage);
			var pollHandler = new PollHandler(commandQ, dataSource, new MockLogger());

			await pollHandler.ReceiveMessage(message);
			var result = commandQ.DequeueCommand();

			Assert.NotNull(result);
			Assert.NotEqual("", result);
			Assert.Contains("You must have at least two options!", result);
		}
Ejemplo n.º 4
0
        public void QualifyTest()
        {
            var dummyDataSource = new MockDataSource();

            var archive = new TelemetryArchive();
            var loggerFromZero = new TelemetryLogger("test", new TelemetryLoggerConfiguration(true, true, true, true));
            loggerFromZero.SetDatasource(dummyDataSource);
            GlobalEvents.Fire(new SessionStarted(), true);

            Assert.False(archive.QualifiesForStorage(loggerFromZero));

            loggerFromZero.Update(0);

            Assert.False(archive.QualifiesForStorage(loggerFromZero));

            loggerFromZero.Update(1000);

            Assert.False(archive.QualifiesForStorage(loggerFromZero));

            loggerFromZero.Update(5000);

            Assert.False(archive.QualifiesForStorage(loggerFromZero));

            loggerFromZero.Update(10000);

            Assert.True(archive.QualifiesForStorage(loggerFromZero));

            loggerFromZero.Close();

            var loggerFromElse = new TelemetryLogger("test", new TelemetryLoggerConfiguration(true, true, true, true));
            loggerFromElse.SetDatasource(dummyDataSource);
            GlobalEvents.Fire(new SessionStarted(), true);

            Assert.False(archive.QualifiesForStorage(loggerFromElse));

            loggerFromElse.Update(10000);

            Assert.False(archive.QualifiesForStorage(loggerFromElse));

            loggerFromElse.Update(13000);

            Assert.False(archive.QualifiesForStorage(loggerFromElse));

            loggerFromElse.Update(0);

            Assert.False(archive.QualifiesForStorage(loggerFromElse));

            loggerFromElse.Update(20000);

            Assert.True(archive.QualifiesForStorage(loggerFromElse));

            loggerFromElse.Update(24*3600*1000);

            Assert.True(archive.QualifiesForStorage(loggerFromElse));
        }
Ejemplo n.º 5
0
		public async void ShouldTimeoutLinkSpamMessages()
		{
			var commandQueue = new MockCommandQueue();
			var dataSource = new MockDataSource();
			var linkSpamHandler = new LinkSpamFilter(commandQueue, dataSource);
			var message = MessageParser.ParseIrcMessage("@color=#FF0000;display-name=BallouTheBear;emotes=;subscriber=0;turbo=0;user-id=30514348;user-type= :[email protected] PRIVMSG #ballouthebear :Check it out! www.google.com");
			await linkSpamHandler.ReceiveMessage(message);

			var command = commandQueue.DequeueCommand();
			Assert.NotEqual(command, "");
		}
Ejemplo n.º 6
0
		public async void AdminCanGratPermissionToUserForLinks()
		{
			var commandQueue = new MockCommandQueue();
			var dataSource = new MockDataSource();
			var repo = dataSource.Repository<User>() as MockRepository<User>;
			repo.ObjectCache.Add("ballouthebear", new User()
			{
				Channels = new Dictionary<string, UserChannel>()
				{
					{
						"#ballouthebear", new UserChannel()
						{
							IsModerator = true
						}
					}
				},
				Data = new Dictionary<string, object>()
			});
			repo.ObjectCache.Add("taylormade86", new User()
			{
				Channels = new Dictionary<string, UserChannel>()
				{
					{
						"#ballouthebear", new UserChannel()
						{
							IsModerator = false
						}
					}
				},
				Data = new Dictionary<string, object>()
			});

			var linkSpamHandler = new LinkSpamFilter(commandQueue, dataSource);
			var adminMessage = MessageParser.ParseIrcMessage("@color=#FF0000;display-name=BallouTheBear;emotes=;subscriber=0;turbo=0;user-id=30514348;user-type= :[email protected] PRIVMSG #ballouthebear :!permit taylormade86");
			await linkSpamHandler.ReceiveMessage(adminMessage);
			var command = commandQueue.DequeueCommand();
			Assert.Equal(command, "PRIVMSG #ballouthebear :User taylormade86 has been permitted to post a link.");

			var userMessage = MessageParser.ParseIrcMessage("@color=#FF0000;display-name=Taylormade86;emotes=;subscriber=0;turbo=0;user-id=30514348;user-type= :[email protected] PRIVMSG #ballouthebear :Check it out! www.google.com");
			await linkSpamHandler.ReceiveMessage(userMessage);

			command = commandQueue.DequeueCommand();
			Assert.Equal(command, "");
		}
Ejemplo n.º 7
0
        public async Task IncludesEtagInConditions()
        {
            MemoryStream          stream      = new MemoryStream();
            MockDataSource        dataSource  = new MockDataSource(100);
            Mock <BlobBaseClient> blockClient = new Mock <BlobBaseClient>(MockBehavior.Strict, new Uri("http://mock"), new BlobClientOptions());

            blockClient.SetupGet(c => c.ClientConfiguration).CallBase();

            SetupDownload(blockClient, dataSource);

            PartitionedDownloader downloader = new PartitionedDownloader(
                blockClient.Object,
                new StorageTransferOptions()
            {
                MaximumTransferLength = 10,
                InitialTransferLength = 10
            });

            Response result = await InvokeDownloadToAsync(downloader, stream);

            Assert.AreEqual(dataSource.Requests.Count, 10);
            AssertContent(100, stream);
            Assert.NotNull(result);

            bool first = true;

            foreach ((HttpRange Range, BlobRequestConditions Conditions)request in dataSource.Requests)
            {
                Assert.AreEqual(s_conditions.LeaseId, request.Conditions.LeaseId);
                Assert.AreEqual(s_conditions.IfModifiedSince, request.Conditions.IfModifiedSince);
                Assert.AreEqual(s_conditions.IfUnmodifiedSince, request.Conditions.IfUnmodifiedSince);
                Assert.AreEqual(s_conditions.IfNoneMatch, request.Conditions.IfNoneMatch);
                if (first)
                {
                    first = false;
                }
                else
                {
                    Assert.AreEqual(s_etag, request.Conditions.IfMatch);
                }
            }
        }
Ejemplo n.º 8
0
        public void StoreLogFile()
        {
            var dummyDataSource = new MockDataSource();

            var archive =  new TelemetryArchive();
            var loggerFromZero = new TelemetryLogger("test", new TelemetryLoggerConfiguration(true, true, true, true));
            loggerFromZero.SetDatasource(dummyDataSource);
            loggerFromZero.SetAnnotater(archive);
            var logWriter = new LogFileWriter("test.zip","TelemetryArchiveTestsStoreLogFile");

            GlobalEvents.Fire(new SessionStarted(), true);

            loggerFromZero.Update(0);
            loggerFromZero.Update(10000);
            loggerFromZero.Update(20000);

            GlobalEvents.Fire(new SessionStopped(), true);

            Thread.Sleep(5000);
        }
Ejemplo n.º 9
0
        public async Task DownloadsInBlocksWhenOverTheLimit()
        {
            MemoryStream          stream      = new MemoryStream();
            MockDataSource        dataSource  = new MockDataSource(100);
            Mock <BlobBaseClient> blockClient = new Mock <BlobBaseClient>(MockBehavior.Strict, new Uri("http://mock"), new BlobClientOptions());

            blockClient.SetupGet(c => c.ClientConfiguration).CallBase();
            SetupDownload(blockClient, dataSource);

            PartitionedDownloader downloader = new PartitionedDownloader(
                blockClient.Object,
                new StorageTransferOptions()
            {
                MaximumTransferLength = 10,
                InitialTransferLength = 20
            });

            Response result = await InvokeDownloadToAsync(downloader, stream);

            Assert.AreEqual(dataSource.Requests.Count, 9);
            AssertContent(100, stream);
            Assert.NotNull(result);
        }
Ejemplo n.º 10
0
 public MainPageViewModel()
 {
     _dataSource = new MockDataSource();
     Languages   = _dataSource.Languages;
     LoadData();
 }
Ejemplo n.º 11
0
        private void StartButtonClicked(object parameters)
        {
            string param = parameters.ToString();

            if (param == "START")
            {
                DataSourceAdjustCoord transferSource = new DataSourceAdjustCoord(DateToFetch, FileToCorrect);
                Datasource       = transferSource;
                ConvertingStatus = transferSource.ConvertingStatus;
                NotifyPropertyChanged(p => p.ConvertingStatus);
                (transferSource as DataSourceAdjustCoord).ConvertCompleted += (s1, a1) =>
                {
                    string str1 = App.Current.FindResource("msgAdjustComplete").ToString();
                    MessageBox.Show(str1, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                };

                BackgroundWorker bw = new BackgroundWorker();
                bw.DoWork += (s, a) =>
                {
                    transferSource.ConvertToMBTiles(FileToCorrect, "", "", "", new int[] { 18, 19 }, null, false);
                };
                bw.RunWorkerAsync();
            }
            else if (param == "MERGE")
            {
                IsMergeButtonEnable = false;
                BackgroundWorker bw = new BackgroundWorker();
                bw.RunWorkerCompleted += (s, a) =>
                {
                    MessageBox.Show("转换完成", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                };
                bw.DoWork += (s, a) =>
                {
                    Datasource       = new MockDataSource();
                    ConvertingStatus = new ConvertStatus();
                    ((MockDataSource)Datasource).ConvertingStatus = ConvertingStatus;
                    NotifyPropertyChanged(p => p.ConvertingStatus);

                    List <int>       levels = new List <int>();
                    int              recordCount = 0;
                    int              totalCount = 0;
                    string           boundA = "", boundB = "";
                    SQLiteConnection _outputconn = new SQLiteConnection("Data source = " + FileToCorrect);
                    _outputconn.Open();
                    SQLiteConnection _inputconn = new SQLiteConnection("Data source = " + DateToFetch);
                    _inputconn.Open();
                    ConvertingStatus.IsInProgress = true;
                    using (SQLiteTransaction writeTran = _outputconn.BeginTransaction())
                    {
                        SQLiteCommand readCommand  = new SQLiteCommand(_inputconn);
                        SQLiteCommand writeCommand = new SQLiteCommand(_outputconn);
                        readCommand.CommandText = "select value from metadata where name = 'bounds'";
                        SQLiteDataReader reader = readCommand.ExecuteReader();
                        if (reader.Read())
                        {
                            boundA = reader.GetString(0);
                        }
                        reader.Close();

                        writeCommand.CommandText = "select value from metadata where name = 'bounds'";
                        reader = writeCommand.ExecuteReader();
                        if (reader.Read())
                        {
                            boundB = reader.GetString(0);
                        }
                        reader.Close();



                        readCommand.CommandText = "select count(*) from tiles";
                        reader = readCommand.ExecuteReader();
                        if (reader.Read())
                        {
                            totalCount = reader.GetInt32(0);
                        }
                        ConvertingStatus.TotalCount = totalCount;
                        reader.Close();
                        readCommand.CommandText = "select distinct(zoom_level) from tiles order by zoom_level";
                        reader = readCommand.ExecuteReader();
                        while (reader.Read())
                        {
                            levels.Add(reader.GetInt32(0));
                        }
                        reader.Close();


                        foreach (int level in levels)
                        {
                            readCommand.CommandText = "select count(*) from tiles where zoom_level = " + level;
                            reader = readCommand.ExecuteReader();
                            reader.Read();
                            int levelCount     = reader.GetInt32(0);
                            int levelCompleted = 0;
                            ConvertingStatus.Level              = level;
                            ConvertingStatus.LevelTotalCount    = levelCount;
                            ConvertingStatus.LevelCompleteCount = ConvertingStatus.LevelErrorCount = 0;
                            reader.Close();
                            readCommand.CommandText = "select zoom_level, tile_column, tile_row, tile_data from tiles where zoom_level = " + level;
                            reader = readCommand.ExecuteReader();
                            while (reader.Read())
                            {
                                int    col  = reader.GetInt32(1);
                                int    row  = reader.GetInt32(2);
                                byte[] data = (byte[])reader.GetValue(3);
                                try
                                {
                                    WriteTilesToSqlite(level, col, row, data, writeCommand);
                                }
                                catch (Exception e)
                                {
                                }
                                finally
                                {
                                    levelCompleted++;
                                    recordCount++;
                                    ConvertingStatus.LevelCompleteCount = levelCompleted;
                                    ConvertingStatus.CompleteCount      = recordCount;
                                    TotalPercent = ConvertingStatus.CompletePercent;
                                }
                            }
                            reader.Close();
                        }
                        writeCommand.CommandText = "update metadata set value = @bound where name = 'bounds'";
                        writeCommand.Parameters.AddWithValue("bound", mergeBounds(boundA, boundB));
                        writeCommand.ExecuteNonQuery();

                        writeTran.Commit();
                        writeTran.Dispose();
                    }
                    ConvertingStatus.IsInProgress = false;
                    _inputconn.Close();
                    _inputconn.Dispose();
                    _outputconn.Close();
                    _outputconn.Dispose();
                };
                bw.RunWorkerAsync();
            }
        }