Example #1
0
	public void TestAddData()
	{
		var buffer = new SocketBuffer(10);

		Assert.AreEqual(10, buffer.BufferSize);
		Assert.AreEqual(0, buffer.ProducePosition);
		Assert.AreEqual(0, buffer.ConsumePosition);

		var data = System.Text.Encoding.ASCII.GetBytes("hello!");
		var result = buffer.AddData(data);

		Assert.AreEqual(6, buffer.ProducePosition);
		Assert.AreEqual(0, buffer.ConsumePosition);
		Assert.AreEqual(6, buffer.AvailableDataLength);
		Assert.AreEqual(4, buffer.AvailableSpace);
		Assert.IsTrue(result);

		//cannot add
		data = System.Text.Encoding.ASCII.GetBytes("world");

		result = buffer.AddData(data);
		Assert.IsTrue(!result);

		buffer.SetBytesUsed(4);

		data = System.Text.Encoding.ASCII.GetBytes("world123");
		result = buffer.AddData(data);

		Assert.IsTrue(result);
		Assert.AreEqual(4, buffer.ProducePosition);
		Assert.AreEqual(4, buffer.ConsumePosition);
		Assert.AreEqual(10, buffer.AvailableDataLength);
		Assert.AreEqual(0, buffer.AvailableSpace);

		var raw = buffer.RawBuffer;
		var echo = System.Text.Encoding.ASCII.GetString(raw);
		Debug.Log("echo:" + echo);

		buffer.SetBytesUsed(6);

		data = System.Text.Encoding.ASCII.GetBytes("456789");
		buffer.AddData(data);
		Assert.IsTrue(result);

		Assert.AreEqual(0, buffer.ProducePosition);
		Assert.AreEqual(0, buffer.ConsumePosition);
		Assert.AreEqual(10, buffer.AvailableDataLength);
		Assert.AreEqual(0, buffer.AvailableSpace);

		echo = System.Text.Encoding.ASCII.GetString(raw);
		Debug.Log("echo:" + echo);

		buffer.SetBytesUsed(6);

		data = System.Text.Encoding.ASCII.GetBytes("abc");
		buffer.AddData(data);

		Assert.AreEqual(3, buffer.ProducePosition);
		Assert.AreEqual(6, buffer.ConsumePosition);
		Assert.AreEqual(7, buffer.AvailableDataLength);
		Assert.AreEqual(3, buffer.AvailableSpace);

		echo = System.Text.Encoding.ASCII.GetString(raw);
		Debug.Log("echo:" + echo);


	}
Example #2
0
	public void TestAddData2()
	{
		var buffer = new SocketBuffer(2048);
		var raw = buffer.RawBuffer;

		Assert.AreEqual(2048, buffer.BufferSize);
		Assert.AreEqual(0, buffer.ProducePosition);
		Assert.AreEqual(0, buffer.ConsumePosition);

		var data = System.Text.Encoding.ASCII.GetBytes("hello~");
		var result = buffer.AddData(data);

		Assert.AreEqual(6, buffer.ProducePosition);
		Assert.AreEqual(0, buffer.ConsumePosition);
		Assert.AreEqual(6, buffer.AvailableDataLength);
		Assert.AreEqual(2042, buffer.AvailableSpace);
		Assert.IsTrue(result);

		buffer.SetBytesUsed(6);

		data = System.Text.Encoding.ASCII.GetBytes("test");
		buffer.AddData(data);

		var desti = new byte[buffer.CurrentPickingDataLength];
		Array.Copy(raw, buffer.ConsumePosition, desti, 0, buffer.CurrentPickingDataLength);

		var text = System.Text.Encoding.ASCII.GetString(desti);
		Assert.AreEqual(text, "test");

		buffer.SetBytesUsed(4);

		data = System.Text.Encoding.ASCII.GetBytes("test");
		buffer.AddData(data);

		Array.Copy(raw, buffer.ConsumePosition, desti, 0, buffer.CurrentPickingDataLength);

		text = System.Text.Encoding.ASCII.GetString(desti);
		Assert.AreEqual(text, "test");

		buffer.SetBytesUsed(4);


	}