extra test and method encode fix
This commit is contained in:
parent
198613a854
commit
be40553674
@ -45,4 +45,16 @@ mod tests {
|
|||||||
assert_eq!(vec![0, 0, 0, 0, 0, 5], service_proxy.socket().borrow().write_buffer.clone());
|
assert_eq!(vec![0, 0, 0, 0, 0, 5], service_proxy.socket().borrow().write_buffer.clone());
|
||||||
assert_eq!(10, result);
|
assert_eq!(10, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn call_service_proxy_optional() {
|
||||||
|
let mut socket = TestSocket::new();
|
||||||
|
socket.read_buffer = vec![0, 0, 0, 10];
|
||||||
|
let service_proxy = ServiceProxy::new(socket);
|
||||||
|
|
||||||
|
let result = service_proxy.rollback(Some(5), 10);
|
||||||
|
|
||||||
|
assert_eq!(vec![0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 10], service_proxy.socket().borrow().write_buffer.clone());
|
||||||
|
assert_eq!(10, result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,10 +29,11 @@ impl Service {
|
|||||||
*lock = *lock + f as usize;
|
*lock = *lock + f as usize;
|
||||||
f
|
f
|
||||||
}
|
}
|
||||||
pub fn rollback(&self, a: u32, b: u32) -> i32 {
|
pub fn rollback(&self, a: Option<u32>, b: u32) -> i32 {
|
||||||
|
let a_0 = a.unwrap_or_else(|| 0);
|
||||||
let mut lock = self.rollbacks.write().unwrap();
|
let mut lock = self.rollbacks.write().unwrap();
|
||||||
*lock = *lock + a as usize - b as usize;
|
*lock = *lock + a_0 as usize - b as usize;
|
||||||
(a - b) as i32
|
(a_0 - b) as i32
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user