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); }
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); }
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); }
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); }
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); } }
/// <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; }