|  | @@ -31,11 +31,14 @@ namespace testing {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class Foo : public ReferenceCounted {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  | -  Foo() : ReferenceCounted(nullptr) {}
 | 
	
		
			
				|  |  | +  Foo() : ReferenceCounted(nullptr), value_(0) {}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  void log() { 
 | 
	
		
			
				|  |  | -    gpr_log(GPR_INFO, "==> log()");
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  explicit Foo(int value) : ReferenceCounted(nullptr), value_(value) {}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  int value() const { return value_; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | + private:
 | 
	
		
			
				|  |  | +  int value_;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  TEST(ReferenceCountedPtr, DefaultConstructor) {
 | 
	
	
		
			
				|  | @@ -120,9 +123,19 @@ TEST(ReferenceCountedPtr, ResetFromNullToNull) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  TEST(ReferenceCountedPtr, DerefernceOperators) {
 | 
	
		
			
				|  |  |    ReferenceCountedPtr<Foo> foo(New<Foo>());
 | 
	
		
			
				|  |  | -  foo->log();
 | 
	
		
			
				|  |  | +  foo->value();
 | 
	
		
			
				|  |  |    Foo& foo_ref = *foo;
 | 
	
		
			
				|  |  | -  foo_ref.log();
 | 
	
		
			
				|  |  | +  foo_ref.value();
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +TEST(MakeReferenceCounted, NoArgs) {
 | 
	
		
			
				|  |  | +  ReferenceCountedPtr<Foo> foo = MakeReferenceCounted<Foo>();
 | 
	
		
			
				|  |  | +  EXPECT_EQ(0, foo->value());
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +TEST(MakeReferenceCounted, Args) {
 | 
	
		
			
				|  |  | +  ReferenceCountedPtr<Foo> foo = MakeReferenceCounted<Foo>(3);
 | 
	
		
			
				|  |  | +  EXPECT_EQ(3, foo->value());
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }  // namespace testing
 |