public async Task CurrentTokenAsync() { using (JTokenWriter jsonWriter = new JTokenWriter()) { Assert.AreEqual(WriteState.Start, jsonWriter.WriteState); Assert.AreEqual(null, jsonWriter.CurrentToken); await jsonWriter.WriteStartObjectAsync(); Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); Assert.AreEqual(jsonWriter.Token, jsonWriter.CurrentToken); JObject o = (JObject)jsonWriter.Token; await jsonWriter.WritePropertyNameAsync("CPU"); Assert.AreEqual(WriteState.Property, jsonWriter.WriteState); Assert.AreEqual(o.Property("CPU"), jsonWriter.CurrentToken); await jsonWriter.WriteValueAsync("Intel"); Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); Assert.AreEqual(o["CPU"], jsonWriter.CurrentToken); await jsonWriter.WritePropertyNameAsync("Drives"); Assert.AreEqual(WriteState.Property, jsonWriter.WriteState); Assert.AreEqual(o.Property("Drives"), jsonWriter.CurrentToken); await jsonWriter.WriteStartArrayAsync(); Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); Assert.AreEqual(o["Drives"], jsonWriter.CurrentToken); JArray a = (JArray)jsonWriter.CurrentToken; await jsonWriter.WriteValueAsync("DVD read/writer"); Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); Assert.AreEqual(a[a.Count - 1], jsonWriter.CurrentToken); #if !PORTABLE || NETSTANDARD1_3 || NETSTANDARD2_0 await jsonWriter.WriteValueAsync(new BigInteger(123)); Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); Assert.AreEqual(a[a.Count - 1], jsonWriter.CurrentToken); #endif await jsonWriter.WriteValueAsync(new byte[0]); Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); Assert.AreEqual(a[a.Count - 1], jsonWriter.CurrentToken); await jsonWriter.WriteEndAsync(); Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); Assert.AreEqual(a, jsonWriter.CurrentToken); await jsonWriter.WriteEndObjectAsync(); Assert.AreEqual(WriteState.Start, jsonWriter.WriteState); Assert.AreEqual(o, jsonWriter.CurrentToken); } }