public void Contains_ShouldReturnTrue()
        {
            // Arrange
            var have    = RandomValueGen.GetRandom <KeyValuePair <string, string> >();
            var missing = RandomValueGen.GetAnother(have);
            var sut     = Create <string, string>();

            sut.Add(have);

            // Pre-assert

            // Act
            var haveResult    = sut.Contains(have);
            var missingResult = sut.Contains(missing);

            // Assert
            Expect(haveResult).To.Be.True();
            Expect(missingResult).To.Be.True();
        }
        public void ContainsKey_ShouldReturnTrue()
        {
            // Arrange
            var haveKey    = RandomValueGen.GetRandomString();
            var missingKey = RandomValueGen.GetAnother(haveKey);
            var sut        = Create <string, string>();

            sut[haveKey] = RandomValueGen.GetRandomString();

            // Pre-assert

            // Act
            var haveResult    = sut.ContainsKey(haveKey);
            var missingResult = sut.ContainsKey(missingKey);

            // Assert
            Expect(haveResult).To.Be.True();
            Expect(missingResult).To.Be.True();
        }
        public void Remove_GivenKey_ShouldPassThrough()
        {
            // Arrange
            var have    = RandomValueGen.GetRandom <KeyValuePair <string, string> >();
            var missing = RandomValueGen.GetAnother(have);
            var sut     = Create <string, string>();

            sut.Add(have);
            Expect(sut[have.Key]).Not.To.Be.Null();

            // Pre-assert

            // Act
            var haveResult    = sut.Remove(have.Key);
            var missingResult = sut.Remove(missing.Key);

            // Assert
            Expect(haveResult).To.Be.True();
            Expect(missingResult).To.Be.False();
            Expect(sut[have.Key]).To.Be.Null();
        }
예제 #4
0
                public void WithCustomMessage()
                {
                    // Arrange
                    var expected = RandomValueGen.GetRandomString();
                    var test     = RandomValueGen.GetRandomString();
                    var nonMatch = RandomValueGen.GetAnother(test);

                    // Pre-Assert
                    // Act
                    Assert.That(() =>
                    {
                        Expect(test).To.Equal(nonMatch, expected);
                    },
                                Throws.Exception.InstanceOf <UnmetExpectationException>()
                                .With.Message.Contains(expected));
                    Assert.That(() =>
                    {
                        Expect(test).To.Equal(nonMatch, () => expected);
                    },
                                Throws.Exception.InstanceOf <UnmetExpectationException>()
                                .With.Message.Contains(expected));
                    // Assert
                }
예제 #5
0
        public void GetEnumerator_ShouldEnumerateOverDistinctKeyValuePairsWithPriority()
        {
            // Arrange
            var key1       = RandomValueGen.GetRandomString();
            var key2       = RandomValueGen.GetAnother(key1);
            var key3       = RandomValueGen.GetAnother <string>(new[] { key1, key2 });
            var expected1  = RandomValueGen.GetRandomString();
            var expected2  = RandomValueGen.GetAnother(expected1);
            var expected3  = RandomValueGen.GetAnother <string>(new[] { expected1, expected2 });
            var unexpected = RandomValueGen.GetAnother <string>(new[] { expected1, expected2, expected3 });
            var sut        = Create(
                new Dictionary <string, string>()
            {
                [key1] = expected1,
                [key2] = expected2
            },
                new Dictionary <string, string>()
            {
                [key1] = unexpected,
                [key3] = expected3
            });
            var collector = new List <KeyValuePair <string, string> >();

            // Pre-assert

            // Act
            foreach (var kvp in sut)
            {
                collector.Add(kvp);
            }

            // Assert
            Expectations.Expect(collector.Count).To.Equal(3);
            Expectations.Expect(collector.Any(kvp => kvp.Key == key1 && kvp.Value == expected1)).To.Be.True();
            Expectations.Expect(collector.Any(kvp => kvp.Key == key2 && kvp.Value == expected2)).To.Be.True();
            Expectations.Expect(collector.Any(kvp => kvp.Key == key3 && kvp.Value == expected3)).To.Be.True();
        }
예제 #6
0
        public void GivenTwoDictionarisWhicCollide_ShouldReturnValueFromFirst()
        {
            // Arrange
            var key    = RandomValueGen.GetRandomString();
            var value1 = RandomValueGen.GetRandomString();
            var value2 = RandomValueGen.GetAnother(value1);
            var dict1  = new Dictionary <string, string>()
            {
                [key] = value1
            };
            var dict2 = new Dictionary <string, string>()
            {
                [key] = value2
            };
            var sut = Create(dict1, dict2);

            // Pre-assert

            // Act
            var result = sut[key];

            // Assert
            Expectations.Expect(result).To.Equal(value1);
        }
예제 #7
0
        public void Keys_ShouldReturnAllDistinctKeys()
        {
            // Arrange
            var k1  = RandomValueGen.GetRandomString();
            var k2  = RandomValueGen.GetAnother(k1);
            var sut = Create(new Dictionary <string, string>()
            {
                [k1] = RandomValueGen.GetRandomString(),
                [k2] = RandomValueGen.GetRandomString()
            }, new Dictionary <string, string>()
            {
                [k1] = RandomValueGen.GetRandomString()
            });

            // Pre-assert

            // Act
            var result = sut.Keys;

            // Assert
            Expectations.Expect(result.Count).To.Equal(2);
            Expectations.Expect(result).To.Contain.Exactly(1).Equal.To(k1);
            Expectations.Expect(result).To.Contain.Exactly(1).Equal.To(k2);
        }