[ https://issues.apache.org/jira/browse/GOSSIP-62?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16046542#comment-16046542 ]
ASF GitHub Bot commented on GOSSIP-62: -------------------------------------- Github user Terry-Weymouth commented on a diff in the pull request: https://github.com/apache/incubator-gossip/pull/53#discussion_r121389177 --- Diff: gossip-base/src/test/java/org/apache/gossip/crdt/PNCounterTest.java --- @@ -0,0 +1,140 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gossip.crdt; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import org.apache.gossip.LocalMember; +import org.apache.gossip.manager.GossipManager; +import org.junit.Assert; +import org.junit.Test; + +public class PNCounterTest { + + @Test + public void existanceTest() { + // mock GossipManager + GossipManager manager = mock(GossipManager.class); + LocalMember mockMember = mock(LocalMember.class); + when(mockMember.getId()).thenReturn("x"); + when(manager.getMyself()).thenReturn(mockMember); + + PNCounter counter = new PNCounter(manager); + Assert.assertEquals(0, (long) counter.value()); + } + + @Test + public void localOperationTest() { + // mock GossipManager + GossipManager manager = mock(GossipManager.class); + LocalMember mockMember = mock(LocalMember.class); + when(mockMember.getId()).thenReturn("x"); + when(manager.getMyself()).thenReturn(mockMember); + + PNCounter counter = new PNCounter(manager); + Assert.assertEquals(0, (long) counter.value()); + + counter.increment(5L); + Assert.assertEquals(5, (long) counter.value()); + + counter.increment(4L); + Assert.assertEquals(9, (long) counter.value()); + + counter.decrement(3L); + Assert.assertEquals(6, (long) counter.value()); + + counter.decrement(12L); + Assert.assertEquals(-6, (long) counter.value()); + } + + @Test + public void oddBallLocalOperationTest() { + // mock GossipManager --- End diff -- @edwardcapriolo Thanks for points, etc.. Will review, change. Just wanted to acknowledge > Implement Crdt PN-Counter > ------------------------- > > Key: GOSSIP-62 > URL: https://issues.apache.org/jira/browse/GOSSIP-62 > Project: Gossip > Issue Type: New Feature > Reporter: Edward Capriolo > Assignee: Terry Weymouth > -- This message was sent by Atlassian JIRA (v6.4.14#64029)