Package havrobase

Source Code of havrobase.UserTest

package havrobase;

import bagcheck.GenderType;
import bagcheck.User;
import junit.framework.TestCase;
import org.apache.avro.io.BinaryDecoder;
import org.apache.avro.io.BinaryEncoder;
import org.apache.avro.io.DecoderFactory;
import org.apache.avro.io.EncoderFactory;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificDatumWriter;
import org.apache.avro.util.Utf8;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

/**
* Check reading and writing User objects
* <p/>
* User: sam
* Date: Jun 8, 2010
* Time: 3:27:24 PM
*/
public class UserTest extends TestCase {

  public void testSave() throws IOException {
    File file = File.createTempFile("hbase", "avro");
    User saved = new User();
    {
      saved.firstName = $("Sam");
      saved.lastName = $("Pullara");
      saved.birthday = $("1212");
      saved.gender = GenderType.MALE;
      saved.email = $("spullara@yahoo.com");
      saved.description = $("CTO of RightTime, Inc. and one of the founders of BagCheck");
      saved.title = $("Engineer");
      saved.image = $("http://farm1.static.flickr.com/1/buddyicons/32354567@N00.jpg");
      saved.location = $("Los Altos, CA");
      saved.password = ByteBuffer.wrap($("").getBytes());
      FileOutputStream fos = new FileOutputStream(file);

      BinaryEncoder be = new EncoderFactory().binaryEncoder(fos, null);
      SpecificDatumWriter<User> sdw = new SpecificDatumWriter<User>(User.class);
      sdw.write(saved, be);
      be.flush();
      fos.close();
    }
    {
      FileInputStream fis = new FileInputStream(file);
      DecoderFactory factory = new DecoderFactory();
      BinaryDecoder bd = factory.binaryDecoder(fis, null);
      SpecificDatumReader<User> sdr = new SpecificDatumReader<User>(User.class);
      User loaded = sdr.read(null, bd);
      fis.close();
      assertEquals(saved, loaded);
      assertEquals("Sam", loaded.firstName.toString());
    }
  }

  public void testOptional() throws IOException {
    File file = File.createTempFile("hbase", "avro");
    User saved = new User();
    {
      saved.firstName = $("Sam");
      saved.lastName = $("Pullara");
//      saved.birthday = $("1212");
//      saved.gender = GenderType.MALE;
      saved.email = $("spullara@yahoo.com");
//      saved.description = $("CTO of RightTime, Inc. and one of the founders of BagCheck");
//      saved.title = $("Engineer");
      saved.image = $("http://farm1.static.flickr.com/1/buddyicons/32354567@N00.jpg");
//      saved.location = $("Los Altos, CA");
      saved.password = ByteBuffer.wrap($("").getBytes());
      FileOutputStream fos = new FileOutputStream(file);
      BinaryEncoder be = new EncoderFactory().binaryEncoder(fos, null);
      SpecificDatumWriter<User> sdw = new SpecificDatumWriter<User>(User.class);
      sdw.write(saved, be);
      be.flush();
      fos.close();
    }
    {
      FileInputStream fis = new FileInputStream(file);
      DecoderFactory factory = new DecoderFactory();
      BinaryDecoder bd = factory.binaryDecoder(fis, null);
      SpecificDatumReader<User> sdr = new SpecificDatumReader<User>(User.class);
      User loaded = sdr.read(null, bd);
      fis.close();
      assertEquals(saved, loaded);
      assertEquals(null, loaded.location);
      assertEquals("Sam", loaded.firstName.toString());
    }
  }

  private Utf8 $(String value) {
    return new Utf8(value);
  }
}
TOP

Related Classes of havrobase.UserTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.