Esempio n. 1
0
        public void TestAddCallsAlgebra()
        {
            var algebraMock = new Mock <ICryptoGroupAlgebra <BigInteger, int> >(MockBehavior.Strict);

            algebraMock.Setup(algebra => algebra.Add(2, 6)).Returns(8);
            algebraMock.Setup(algebra => algebra.IsPotentialElement(It.IsAny <int>())).Returns(true);

            var left     = new CryptoGroupElement <BigInteger, int>(2, algebraMock.Object);
            var right    = new CryptoGroupElement <BigInteger, int>(6, algebraMock.Object);
            var expected = new CryptoGroupElement <BigInteger, int>(8, algebraMock.Object);

            var group = new CryptoGroup <BigInteger, int>(algebraMock.Object);

            Assert.AreEqual(expected, group.Add(left, right));
            algebraMock.Verify(algebra => algebra.Add(2, 6), Times.Once());
        }
Esempio n. 2
0
        public void TestAddRejectsDifferentGroupElementRight()
        {
            var algebraStub = new Mock <ICryptoGroupAlgebra <BigInteger, int> >(MockBehavior.Strict);

            algebraStub.Setup(algebra => algebra.IsPotentialElement(It.IsAny <int>())).Returns(true);
            var group = new CryptoGroup <BigInteger, int>(algebraStub.Object);

            var otherAlgebraStub = new Mock <ICryptoGroupAlgebra <BigInteger, int> >(MockBehavior.Strict);

            otherAlgebraStub.Setup(algebra => algebra.IsPotentialElement(It.IsAny <int>())).Returns(true);

            var element      = new CryptoGroupElement <BigInteger, int>(3, algebraStub.Object);
            var otherElement = new CryptoGroupElement <BigInteger, int>(3, otherAlgebraStub.Object);

            Assert.Throws <ArgumentException>(
                () => group.Add(element, otherElement)
                );
        }