| 
									
										
										
										
											2017-02-15 22:51:01 +01:00
										 |  |  | package buf_test | 
					
						
							| 
									
										
										
										
											2016-02-26 23:45:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2016-12-09 12:08:25 +01:00
										 |  |  | 	"crypto/rand" | 
					
						
							| 
									
										
										
										
											2016-02-26 23:45:33 +01:00
										 |  |  | 	"testing" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:51:01 +01:00
										 |  |  | 	. "v2ray.com/core/common/buf" | 
					
						
							| 
									
										
										
										
											2016-08-20 20:55:45 +02:00
										 |  |  | 	"v2ray.com/core/testing/assert" | 
					
						
							| 
									
										
										
										
											2016-02-26 23:45:33 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestBufferedReader(t *testing.T) { | 
					
						
							| 
									
										
										
										
											2016-05-24 21:55:46 +02:00
										 |  |  | 	assert := assert.On(t) | 
					
						
							| 
									
										
										
										
											2016-02-26 23:45:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:51:01 +01:00
										 |  |  | 	content := New() | 
					
						
							|  |  |  | 	assert.Error(content.AppendSupplier(ReadFrom(rand.Reader))).IsNil() | 
					
						
							| 
									
										
										
										
											2016-12-06 11:03:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-26 23:45:33 +01:00
										 |  |  | 	len := content.Len() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:51:01 +01:00
										 |  |  | 	reader := NewBufferedReader(content) | 
					
						
							| 
									
										
										
										
											2016-12-27 21:41:44 +01:00
										 |  |  | 	assert.Bool(reader.IsBuffered()).IsTrue() | 
					
						
							| 
									
										
										
										
											2016-02-26 23:45:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	payload := make([]byte, 16) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	nBytes, err := reader.Read(payload) | 
					
						
							|  |  |  | 	assert.Int(nBytes).Equals(16) | 
					
						
							|  |  |  | 	assert.Error(err).IsNil() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	len2 := content.Len() | 
					
						
							|  |  |  | 	assert.Int(len - len2).GreaterThan(16) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	nBytes, err = reader.Read(payload) | 
					
						
							|  |  |  | 	assert.Int(nBytes).Equals(16) | 
					
						
							|  |  |  | 	assert.Error(err).IsNil() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	assert.Int(content.Len()).Equals(len2) | 
					
						
							|  |  |  | } |