Пример #1
0
            public void ShouldGetTheHiValueFromRepository()
            {
                // Arrange
                var mock = new Mock <IHiLoRepository>();

                mock.Setup(m => m.GetNextHi()).Returns(1);
                var generator = new HiLoGenerator(mock.Object, 10);

                // Act
                generator.GetKey();
                // Assert
                mock.Verify(m => m.GetNextHi(), Times.Once());
            }
Пример #2
0
            public void ShouldGetTheFirstKeyFromTheHiValue()
            {
                // Arrange
                var mock = new Mock <IHiLoRepository>();

                mock.Setup(m => m.GetNextHi()).Returns(1);
                var generator = new HiLoGenerator(mock.Object, 10);
                // Act
                long key = generator.GetKey();

                // Assert
                Assert.Equal(10, key);
            }
Пример #3
0
            public void ShouldGetTheHiValueFromRepositoryTwiceFor11KeyGenerationsWith10AsMaxLo()
            {
                // Arrange
                var mock = new Mock <IHiLoRepository>();

                mock.Setup(m => m.GetNextHi()).Returns(1);
                var generator = new HiLoGenerator(mock.Object, 10);

                // Act
                for (int i = 1; i <= 11; i++)
                {
                    generator.GetKey();
                }
                // Assert
                mock.Verify(m => m.GetNextHi(), Times.Exactly(2));
            }
Пример #4
0
            public void ShouldFailCreatingInstanceWith0AsMaxLo()
            {
                // Arrange
                var mock = new Mock <IHiLoRepository>();

                try
                {
                    // Act
                    var generator = new HiLoGenerator(mock.Object, 0);
                    // Assert
                    throw new XunitException();
                }
                catch (ArgumentException)
                {
                }
            }
Пример #5
0
            public void ShouldFailCreatingInstanceWithNullAsRepository()
            {
                // Arrange
                IHiLoRepository repository = null;

                try
                {
                    // Act
                    var generator = new HiLoGenerator(repository, 0);
                    // Assert
                    throw new XunitException();
                }
                catch (ArgumentException)
                {
                }
            }
Пример #6
0
            public void ShouldGetDifferentKeysForEachCall()
            {
                // Arrange
                List <long> keys = new List <long>();
                int         hi   = 1;
                var         mock = new Mock <IHiLoRepository>();

                mock.Setup(m => m.GetNextHi()).Returns(() => hi++);
                var generator = new HiLoGenerator(mock.Object, 10);

                // Act
                for (int i = 1; i <= 30; i++)
                {
                    long key = generator.GetKey();
                    // Assert
                    Assert.DoesNotContain(key, keys);
                    keys.Add(key);
                }
            }
Пример #7
0
            public void ShouldGetThe11thKeyFromTheHiValue()
            {
                // Arrange
                int hi   = 1;
                var mock = new Mock <IHiLoRepository>();

                mock.Setup(m => m.GetNextHi()).Returns(() => hi++);
                var generator = new HiLoGenerator(mock.Object, 10);

                // Act
                for (int i = 1; i <= 10; i++)
                {
                    generator.GetKey();
                }
                long key = generator.GetKey();

                // Assert
                Assert.Equal(20, key);
            }