ducky/devices

Paddy 2015-11-29 Parent:b6494e1a499e

13:e3ced527d4ab Go to Latest

ducky/devices/vendor/code.google.com/p/go-uuid/uuid/json.go

Add tests for ToSlice and ToMap. Add simple unit tests that verify that ToSlice and ToMap both work as we expect. These are probably overly-simplistic, but so are the functions we're testing. Not sure about this... feel a bit conflicted. But let's try it.

History
paddy@0 1 // Copyright 2014 Google Inc. All rights reserved.
paddy@0 2 // Use of this source code is governed by a BSD-style
paddy@0 3 // license that can be found in the LICENSE file.
paddy@0 4
paddy@0 5 package uuid
paddy@0 6
paddy@0 7 import "errors"
paddy@0 8
paddy@0 9 func (u UUID) MarshalJSON() ([]byte, error) {
paddy@0 10 if len(u) == 0 {
paddy@0 11 return []byte(`""`), nil
paddy@0 12 }
paddy@0 13 return []byte(`"` + u.String() + `"`), nil
paddy@0 14 }
paddy@0 15
paddy@0 16 func (u *UUID) UnmarshalJSON(data []byte) error {
paddy@0 17 if len(data) == 0 || string(data) == `""` {
paddy@0 18 return nil
paddy@0 19 }
paddy@0 20 if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' {
paddy@0 21 return errors.New("invalid UUID format")
paddy@0 22 }
paddy@0 23 data = data[1 : len(data)-1]
paddy@0 24 uu := Parse(string(data))
paddy@0 25 if uu == nil {
paddy@0 26 return errors.New("invalid UUID format")
paddy@0 27 }
paddy@0 28 *u = uu
paddy@0 29 return nil
paddy@0 30 }