public void DeleteProduct_AttemptToDeleteEntity_Success()
        {
            Arrange arr = ArrangeTests();

            arr.ApiCarPartController.DeleteProduct(arr.CarPart);
            arr.Mocka.Verify(m => m.DeleteEntity(arr.CarPart), Times.Once);
        }
Example #2
0
        /// <summary>
        /// Asserts the case
        /// </summary>
        /// <param name="expected">expected Arrange</param>
        /// <param name="actual">actual Arrange</param>
        public override void Assert(Arrange expected, Arrange actual)
        {
            if (this.Expected.Exists.HasValue)
            {
                this.ExpectedValue = "Node exists: " + this.Expected.Exists;
                this.ActualValue = "Node exists: " + actual.HttpResponse.ExistsNode(this.Actual.Query, this.Actual.Attribute);
            }
            else
            {
                if (!this.IsList)
                {
                    this.ExpectedValue = this.GetValue(expected, this.Expected);
                    this.ActualValue = this.GetValue(actual, this.Actual);
                }
                else
                {
                    this.ExpectedValue = string.Join(", ", this.GetValues(expected, this.Expected));
                    this.ActualValue = string.Join(", ", this.GetValues(actual, this.Actual));
                }
            }

            if (this.Expected.UrlDecode)
            {
                this.ExpectedValue = HttpUtility.UrlDecode(this.ExpectedValue);
            }

            if (this.Actual.UrlDecode)
            {
                this.ActualValue = HttpUtility.UrlDecode(this.ActualValue);
            }

            this.Success = (this.ExpectedValue == this.ActualValue);
        }
Example #3
0
        public void TestAssert()
        {
            // Arrange
            var key   = fixture.Create <string>();
            var value = fixture.Create <string>();
            var item  = new CookieAssertion {
                Key = key, Value = value,
            };

            var arrange = new Arrange
            {
                HttpResponse = new HttpResponse
                {
                    Cookies = new NameValueCollection
                    {
                        { key, value },
                        { "b", "b value" },
                    }
                },
            };

            // Act
            item.Assert(null, arrange);

            // Assert
            Assert.IsTrue(item.Success);
        }
        public void TestAssertWithInvalidXsd()
        {
            // Arrange
            const string ActualHtml =
                @"<Shop>
                    <Item>a</Item>
                    <Item>b</Item>
                    <Item>c</Item>
                </Shop>";

            var item = new XsdAssertion
            {
                Xsd =
                    @"<?xml version='1.0' encoding='utf-8'?>
                        <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
                          <xs:element name='Shop'>
                            <xs:complexType>
                              <xs:sequence>"
            };

            var actual = new Arrange {
                HttpResponse = new HttpResponse {
                    Contents = ActualHtml, ContentType = "text/xml"
                }
            };

            // Act
            item.Assert(null, actual);

            // Assert
            Assert.IsFalse(item.Success);
        }
Example #5
0
        /// <summary>
        /// Asserts the case
        /// </summary>
        /// <param name="expected">expected Arrange</param>
        /// <param name="actual">actual Arrange</param>
        public override void Assert(Arrange expected, Arrange actual)
        {
            if (this.Expected.Exists.HasValue)
            {
                this.ExpectedValue = "Node exists: " + this.Expected.Exists;
                this.ActualValue   = "Node exists: " + actual.HttpResponse.ExistsNode(this.Actual.Query, this.Actual.Attribute);
            }
            else
            {
                if (!this.IsList)
                {
                    this.ExpectedValue = this.GetValue(expected, this.Expected);
                    this.ActualValue   = this.GetValue(actual, this.Actual);
                }
                else
                {
                    this.ExpectedValue = string.Join(", ", this.GetValues(expected, this.Expected));
                    this.ActualValue   = string.Join(", ", this.GetValues(actual, this.Actual));
                }
            }

            if (this.Expected.UrlDecode)
            {
                this.ExpectedValue = HttpUtility.UrlDecode(this.ExpectedValue);
            }

            if (this.Actual.UrlDecode)
            {
                this.ActualValue = HttpUtility.UrlDecode(this.ActualValue);
            }

            this.Success = (this.ExpectedValue == this.ActualValue);
        }
        public void EditProduct_AttemptToModifyEntity_Success()
        {
            Arrange arr = ArrangeTests();

            arr.ApiCarPartController.EditProduct(arr.CarPart.Id, arr.CarPart);
            arr.Mocka.Verify(m => m.ModifyEntity(arr.CarPart.Id, arr.CarPart), Times.Once);
        }
        public void TestAssertWithNoItem()
        {
            // Arrange
            var key   = fixture.Create <string>();
            var value = fixture.Create <string>();
            var item  = new HeaderAssertion {
                Key = key, Value = value
            };
            var arrange = new Arrange
            {
                HttpResponse = new HttpResponse
                {
                    Headers = new NameValueCollection
                    {
                        { "a", "a value" },
                        { "b", "b value" },
                    }
                },
            };

            // Act
            item.Assert(null, arrange);

            // Assert
            Assert.IsFalse(item.Success);
        }
        public void ShouldAutoResolveMissingDependeciesWithMocks()
        {
            var arrange = Arrange.Dependencies <IUserService, UserService>();

            var userService = arrange.Resolve <IUserService>();

            Assert.IsInstanceOf <UserService>(userService);
        }
        public void ShouldAutoResolveLogging()
        {
            var arrange = Arrange.Dependencies <IUserService, UserService>();

            var userService = arrange.Resolve <IUserService>();

            userService.Log();
        }
Example #10
0
        public void For_ParameterlessCtor_ShouldNotHaveAnyDependencies()
        {
            // Act
            var result = Arrange.For <AccountRepository>(type => new object());

            // Assert
            result.Dependencies.Should().BeEmpty();
        }
Example #11
0
        public void For_MultipleCtorsFound_ShouldThrowInvalidOperationException()
        {
            // Act
            Action act = () => Arrange.For <MultipleCtor>(type => new object());

            // Assert
            act.Should().Throw <InvalidOperationException>();
        }
Example #12
0
        public void PerformCommand_ShouldFail_WhenAccessorFindsNoImages()
        {
            Arrange.Call(() => _imageAccessor.Get(default(ImageSource?), ImageGenre.Hardcore))
            .Returns(new List <ImageMetaData>());

            var actual = _service.PerformCommand(_session, Keyword.ShowHardcoreImage);

            Assert.AreEqual(ErrorMessage.NoImagesFound, actual.Error.Message);
        }
Example #13
0
        public void ReverStringTest()
        {
            Arrange arrange = new Arrange();

            Console.WriteLine(arrange.list[0]);
            Console.WriteLine(arrange.methods.ReverseString(arrange.list[0]));
            Console.WriteLine(arrange.methods.ReverseString(arrange.list[1]));
            Console.WriteLine(arrange.methods.ReverseString(arrange.list[2]));
        }
Example #14
0
        public void SortIntListTests()
        {
            Arrange arrange = new Arrange();

            arrange.methods.writelineList(arrange.listInt);
            Console.WriteLine("\n");
            arrange.methods.writelineList(arrange.methods.SortMethodBigtoSmall(arrange.listInt));
            Console.WriteLine("\n");
            arrange.methods.writelineList(arrange.methods.SortMethodSmalltoBig(arrange.listInt));
        }
Example #15
0
        public void sortListTests()
        {
            Arrange arrange = new Arrange();

            arrange.methods.writelineList(arrange.list);
            Console.WriteLine("\n");
            arrange.methods.writelineList(arrange.methods.SortMethodAtoZ(arrange.list));
            Console.WriteLine("\n");
            arrange.methods.writelineList(arrange.methods.SortMethodZtoA(arrange.list));
        }
Example #16
0
        public void StringLengthTests()
        {
            Arrange arrange = new Arrange();
            int     n       = arrange.methods.StringLength(arrange.list[0]);
            int     m       = arrange.methods.StringLength(arrange.list[1]);
            int     o       = arrange.methods.StringLength(arrange.list[2]);
            int     p       = arrange.methods.StringLength(arrange.list[3]);

            Console.WriteLine($"{n} {m} {o} {p}");
        }
Example #17
0
        public void For_ConcreteType_ShouldBuild()
        {
            // Act
            var result = Arrange.For <AccountRepository>();

            // Assert
            Action verify = () => result.BuildSut();

            verify.Should().NotThrow();
        }
        public void ShouldResolveClassWithInMemoryCacheDependency()
        {
            var arrange = Arrange.Dependencies <IUserRepository, UserRepository>(dependencies =>
            {
                dependencies.UseDbContext <TestDbContext>();
            });

            var userRepository = arrange.Resolve <IUserRepository>();

            Assert.IsInstanceOf <UserRepository>(userRepository);
        }
        public void ShouldResolveMultipleImplementationsFromAssembly()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseImplementations <IUserFactory>(typeof(IUserFactory).Assembly);
            });

            var providers = arrange.Resolve <IUserFactory[]>();

            Assert.AreEqual(2, providers.Length);
        }
        public void ShouldResolveUseImplementationWhenConstructed()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseImplementation <IUserFactory, AdminUserFactory>(new AdminUserFactory());
            });

            var userService = arrange.Resolve <IUserFactory>();

            Assert.IsInstanceOf <AdminUserFactory>(userService);
        }
        public void ShouldResolveUseImplementation()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseImplementation <IUserService, UserService>();
            });

            var userService = arrange.Resolve <IUserService>();

            Assert.IsInstanceOf <UserService>(userService);
        }
Example #22
0
        public void Sut_Func_Action_ShouldReturnDependency()
        {
            // Arrange
            var dependency = new AccountRepository();

            // Act
            var result = Arrange.Sut <AccountService>(type => dependency, action => { });

            // Assert
            result.AccountRepository.Should().Be(dependency);
        }
Example #23
0
        public void For_CtorWithParameters_ShouldReturnFluentArrangeObjectWithDependency()
        {
            // Arrange
            var dependency = new AccountRepository();

            // Act
            var result = Arrange.For <AccountService>(type => dependency);

            // Assert
            result.Dependencies.Values.Should().SatisfyRespectively(first => first.Should().Be(dependency));
        }
Example #24
0
        public void Sut_Action_ShouldInvokeAction()
        {
            // Arrange
            var invoked = false;

            // Act
            _ = Arrange.Sut <AccountService>(_ => invoked = true);

            // Assert
            invoked.Should().BeTrue();
        }
        public void ShouldUseDbContext()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseDbContext <TestDbContext>();
            });

            var testContext = arrange.Resolve <TestDbContext>();

            Assert.IsInstanceOf <TestDbContext>(testContext);
        }
Example #26
0
        public void CreateMock_InterfaceType_ShouldReturnObjectOfTypeObjectProxy()
        {
            // Arrange
            var type = typeof(IAccountRepository);

            // Act
            var result = Arrange.CreateMock(type);

            // Assert
            result.GetType().FullName.Should().Be("Castle.Proxies.ObjectProxy");
        }
        public void ShouldAddEntity()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseEntity <Company, TestDbContext>(new Company());
            });

            var db      = arrange.Resolve <TestDbContext>();
            var company = db.Company.FirstOrDefault();

            Assert.AreEqual(1, company.Id);
        }
Example #28
0
        public void Sut_Func_Action_ShouldInvokeAction()
        {
            // Arrange
            var dependency = new AccountRepository();
            var invoked    = false;

            // Act
            _ = Arrange.Sut <AccountService>(type => dependency, action => invoked = true);

            // Assert
            invoked.Should().BeTrue();
        }
        public void ShouldResolveMultipleImplementations()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseImplementation <IUserFactory, AdminUserFactory>();
                dependencies.UseImplementation <IUserFactory, BasicUserFactory>();
            });

            var providers = arrange.Resolve <IUserFactory[]>();

            Assert.AreEqual(2, providers.Length);
        }
        public void ShouldNotCreateMultipleEntitesOnMultipleResolves()
        {
            var arrange = Arrange.Dependencies <IUserService, UserService>(dependencies =>
            {
                dependencies.UseEntity <User, TestDbContext>((user) => user.SetName("Test name"));
            });

            var service = arrange.Resolve <IUserService>();
            var db      = arrange.Resolve <TestDbContext>();

            Assert.AreEqual(1, db.User.Count());
        }
        /// <summary>
        /// Gets Values
        /// </summary>
        /// <param name="arrange">arrange parameter</param>
        /// <param name="assertionItem">assertionItem parameter</param>
        /// <returns>value from arrange</returns>
        protected override IEnumerable<string> GetValues(Arrange arrange, ContentAssertionItem assertionItem)
        {
            var values = base.GetValues(arrange, assertionItem);

            var list = new List<string>();
            foreach (var value in values)
            {
                list.Add(GetDateTimeString(value, assertionItem.Format, assertionItem.FormatCulture));
            }

            return list;
        }
        public void ShouldCreateEntity()
        {
            var arrange = Arrange.Dependencies(dependencies =>
            {
                dependencies.UseEntity <User, TestDbContext>((user) => user.SetName("Test name"));
            });

            var db   = arrange.Resolve <TestDbContext>();
            var user = db.User.FirstOrDefault();

            Assert.IsNotNull(user);
        }
Example #33
0
        /// <summary>
        /// Assert the case
        /// </summary>
        /// <param name="expected">expected Arrange</param>
        /// <param name="actual">actual Arrange</param>
        public override void Assert(Arrange expected, Arrange actual)
        {
            this.ExpectedValue = this.Value;
            var match = Regex.Match(actual.HttpResponse.Uri.OriginalString, ".*://[^/]*(.*)", RegexOptions.None);
            if (match.Success)
            {
                ActualValue = match.Groups[1].Value;
                if (string.IsNullOrWhiteSpace(ActualValue))
                {
                    ActualValue = "/";
                }
            }

            this.Success = this.ExpectedValue == this.ActualValue;
        }
        /// <summary>
        /// Asserts the case
        /// </summary>
        /// <param name="expected">expected Arrange</param>
        /// <param name="actual">actual Arrange</param>
        public override void Assert(Arrange expected, Arrange actual)
        {
            if (!this.IsList)
            {
                this.ExpectedValue = GetValue(expected, this.Expected);
                this.ActualValue = GetValue(actual, this.Actual);
            }
            else
            {
                this.ExpectedValue = string.Join(", ", GetValues(expected, this.Expected));
                this.ActualValue = string.Join(", ", GetValues(actual, this.Actual));
            }

            this.Success = this.ExpectedValue == this.ActualValue;
        }
Example #35
0
        /// <summary>
        /// Asserts
        /// </summary>
        /// <param name="expected">expected parameter</param>
        /// <param name="actual">actual parameter</param>
        public override void Assert(Arrange expected, Arrange actual)
        {
            string text;
            try
            {
                actual.HttpResponse.DocumentParser.TestSchemaWithXsd(this.Xsd);
                text = null;
            }
            catch (Exception ex)
            {
                text = ex.ToString();
            }

            this.ExpectedValue = "True";
            this.ActualValue = ((text == null) ? "True" : string.Format("Exception=<{0}>", text));
            this.Success = (this.ExpectedValue == this.ActualValue);
        }
Example #36
0
 /// <summary>
 /// Assert the case
 /// </summary>
 /// <param name="expected">expected Arrange</param>
 /// <param name="actual">actual Arrange</param>
 public abstract void Assert(Arrange expected, Arrange actual);
Example #37
0
        /// <summary>
        /// Gets Value
        /// </summary>
        /// <param name="arrange">arrange parameter</param>
        /// <param name="assertionItem">assertionItem parameter</param>
        /// <returns>value from arrange</returns>
        protected virtual string GetValue(Arrange arrange, ContentAssertionItem assertionItem)
        {
            if (assertionItem.Value != null)
            {
                return assertionItem.Value;
            }

            var value = arrange.HttpResponse.GetDocumentValue(assertionItem.Query, assertionItem.Attribute);
            if (assertionItem.Pattern != null)
            {
                return TextAssertion.Match(value, assertionItem.Pattern);
            }

            return value;
        }
 /// <summary>
 /// Gets Value
 /// </summary>
 /// <param name="arrange">arrange parameter</param>
 /// <param name="assertionItem">assertionItem parameter</param>
 /// <returns>value from arrange</returns>
 protected override string GetValue(Arrange arrange, ContentAssertionItem assertionItem)
 {
     var value = base.GetValue(arrange, assertionItem);
     return GetDateTimeString(value, assertionItem.Format, assertionItem.FormatCulture);
 }
Example #39
0
 /// <summary>
 /// Asserts the case
 /// </summary>
 /// <param name="expected">expected Arrange</param>
 /// <param name="actual">actual Arrange</param>
 public override void Assert(Arrange expected, Arrange actual)
 {
     this.ExpectedValue = this.Value;
     this.ActualValue = actual.HttpResponse.Headers[this.Key];
     this.Success = this.ExpectedValue == this.ActualValue;
 }
Example #40
0
        /// <summary>
        /// Gets Values
        /// </summary>
        /// <param name="arrange">arrange parameter</param>
        /// <param name="assertionItem">assertionItem parameter</param>
        /// <returns>value from arrange</returns>
        protected virtual IEnumerable<string> GetValues(Arrange arrange, ContentAssertionItem assertionItem)
        {
            if (assertionItem.Value != null)
            {
                throw new NotImplementedException("Static value test for list is not supported.");
            }

            var values = arrange.HttpResponse.GetDocumentValues(assertionItem.Query, assertionItem.Attribute);

            if (assertionItem.Pattern != null)
            {
                var list = new List<string>();
                foreach (var value in values)
                {
                    list.Add(Match(value, assertionItem.Pattern));
                }

                return list;
            }

            return values;
        }
 /// <summary>
 /// Asserts the case
 /// </summary>
 /// <param name="expected">expected Arrange</param>
 /// <param name="actual">actual Arrange</param>
 public override void Assert(Arrange expected, Arrange actual)
 {
     this.ExpectedValue = this.Value;
     this.ActualValue = ((int)actual.HttpResponse.StatusCode).ToString(CultureInfo.InvariantCulture);
     this.Success = this.ExpectedValue == this.ActualValue;
 }