add unittest and travis-ci config