Exemple #1
0
        public void OnNext_SplittedText_TextCorrectlyParsed(int size0, int size1)
        {
            var observer  = new TokenObserver();
            var tokenizer = new SimpleTokenizer(observer);

            var buf    = Encoding.UTF8.GetBytes("id \tblabla");
            var pos    = 0;
            var blocks = new[] { size0, size1 };

            foreach (var blockSize in blocks.Where(_ => _ != 0))
            {
                tokenizer.OnNext(new Span <byte>(buf, pos, blockSize));
                pos += blockSize;
            }

            if (pos < buf.Length)
            {
                tokenizer.OnNext(new Span <byte>(buf, pos, buf.Length - pos));
            }
            tokenizer.OnCompleted();
            Console.WriteLine(string.Join(Environment.NewLine, observer.Tokens));
            Assert.AreEqual(3, observer.Tokens.Count);
            Assert.AreEqual("id", observer.Tokens[0].Value);
            Assert.AreEqual(SimpleTokenizer.TokenType.Id, observer.Tokens[0].Type);
            Assert.AreEqual(" \t", observer.Tokens[1].Value);
            Assert.AreEqual(SimpleTokenizer.TokenType.Whitespace, observer.Tokens[1].Type);
            Assert.AreEqual("blabla", observer.Tokens[2].Value);
            Assert.AreEqual(SimpleTokenizer.TokenType.Id, observer.Tokens[2].Type);
            Assert.IsNull(observer.Error);
            Assert.AreEqual(true, observer.IsCompleted);
        }
Exemple #2
0
        public void OnCompleted_NoTokensNoErrorCompleted()
        {
            var observer  = new TokenObserver();
            var tokenizer = new SimpleTokenizer(observer);

            tokenizer.OnCompleted();

            Assert.AreEqual(0, observer.Tokens.Count);
            Assert.IsNull(observer.Error);
            Assert.AreEqual(true, observer.IsCompleted);
        }
Exemple #3
0
        public void OnNext_EmptyString_NoTokensNoErrorNotCompleted()
        {
            var observer  = new TokenObserver();
            var tokenizer = new SimpleTokenizer(observer);

            tokenizer.OnNext(ReadOnlySpan <byte> .Empty);

            Assert.AreEqual(0, observer.Tokens.Count);
            Assert.IsNull(observer.Error);
            Assert.AreEqual(false, observer.IsCompleted);
        }
Exemple #4
0
        public void OnNext_Id_IdCorrectlyParsed()
        {
            var observer  = new TokenObserver();
            var tokenizer = new SimpleTokenizer(observer);

            tokenizer.OnNext(Encoding.UTF8.GetBytes("Bla"));
            tokenizer.OnCompleted();

            Assert.AreEqual(1, observer.Tokens.Count);
            Assert.AreEqual("Bla", observer.Tokens[0].Value);
            Assert.AreEqual(SimpleTokenizer.TokenType.Id, observer.Tokens[0].Type);
            Assert.IsNull(observer.Error);
            Assert.AreEqual(true, observer.IsCompleted);
        }
Exemple #5
0
        public void OnNext_CorrectlyParsed(string text, SimpleTokenizer.TokenType type)
        {
            Console.WriteLine(float.MinValue.ToString("f", CultureInfo.InvariantCulture));
            Console.WriteLine(float.MaxValue.ToString("f", CultureInfo.InvariantCulture));
            var buf = Encoding.UTF8.GetBytes(text);

            for (var i = 0; i < text.Length; ++i)
            {
                var observer  = new TokenObserver();
                var tokenizer = new SimpleTokenizer(observer);
                tokenizer.OnNext(new Span <byte>(buf, 0, i));
                tokenizer.OnNext(new Span <byte>(buf, i, buf.Length - i));
                tokenizer.OnCompleted();

                Assert.AreEqual(1, observer.Tokens.Count);
                Assert.AreEqual(text, observer.Tokens[0].Value);
                Assert.AreEqual(type, observer.Tokens[0].Type);
            }
        }
Exemple #6
0
        /// <inheritdoc />
        public override void Register()
        {
            CloudLocator.GetCloud = (() =>
            {
                return(this);
            });

            CloudLocator.GetConfig = (() =>
            {
                return(new ConfigHelper());
            });

            //config
            var config = CloudLocator.GetConfig() as ConfigHelper;

            // init the connection to the authentication server
            var tokenObserver = new TokenObserver(config.AuthServerAddress, config.SrcDeviceId);

            tokenObserver.Init(config.SrcDeviceId, config.BrokerPassword, config.Secret).Await(30);

            // Workers to handle messages (commands /fetch / messages)
            this.ActionWorker = new ActionWorker(config.SrcDeviceId, tokenObserver);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ActionWorker" /> class.
 /// </summary>
 /// <param name="brokerId">The broker identifier.</param>
 /// <param name="secret">The secret.</param>
 /// <param name="tokenObserver">The token observer.</param>
 public ActionWorker(string brokerId, TokenObserver tokenObserver) : base()
 {
     this.ReadyForConnections = false;
     this.brokerId            = brokerId;
     this.tokenObserver       = tokenObserver;
 }