public void GridView1RowDataBound_Should_AddAtrributeInTheRow()
        {
            // Arrange
            var actualVisible       = false;
            var actualAttributeKey  = string.Empty;
            var actualAttibuteValue = string.Empty;

            ShimSPContext.CurrentGet = () => new ShimSPContext();

            var linkButton = new ShimLinkButton()
            {
                CommandArgumentGet = () => DummyUserId.ToString()
            };

            var webControlLinkButton = new ShimWebControl(linkButton)
            {
                AttributesGet = () => new ShimAttributeCollection()
                {
                    AddStringString = (keyParam, valueParam) =>
                    {
                        actualAttributeKey  = keyParam;
                        actualAttibuteValue = valueParam;
                    }
                }
            };
            var controlLinkButton = new ShimControl(linkButton)
            {
                VisibleSetBoolean = visible => actualVisible = visible
            };

            var gridViewRow = new ShimGridViewRow()
            {
                RowTypeGet = () => DataControlRowType.DataRow,
            };
            var controlGridViewRow = new ShimControl(gridViewRow)
            {
                FindControlString = controlName => linkButton
            };

            var eventArgSend = new ShimGridViewRowEventArgs()
            {
                RowGet = () => gridViewRow
            };

            _privateObject.SetField(HiddenUserIdFieldName, new HiddenField()
            {
                Value = DummyUserId.ToString()
            });

            // Act
            _privateObject.Invoke(GridView1RowDataBoundMethodName, this, eventArgSend.Instance);

            // Assert
            this.ShouldSatisfyAllConditions(
                () => actualVisible.ShouldBeFalse(),
                () => actualAttributeKey.ShouldBe("onclick"),
                () => actualAttibuteValue.ShouldBe("javascript:return confirm('Are you sure you want to delete  from your site?')"));
        }
        public void SetUp()
        {
            shimsContext = ShimsContext.Create();

            ICustomerRepository customerRepository = new InMemoryCustomerRepository();
            customerRepository.Add(new Customer { CustomerId = 0, Name = "Customer 1" });
            customerRepository.Add(new Customer { CustomerId = 1, Name = "Customer 2" });
            customerRepository.Add(new Customer { CustomerId = 2, Name = "Customer 3" });

            ISalesOrderRepository salesOrderRepository = new InMemorySalesOrderRepository();
            salesOrderRepository.Add(new SalesOrder { Customer = new Customer { CustomerId = 0, Name = "Customer 1" }, SalesOrderId = 0, Lines = new List<OrderLine> { new OrderLine { Price = 5, Quantity = 5 } } });

            webPart = new SalesOrderWebPart();
            var page = new ShimPage() { IsPostBackGet = () => { return false; } };
            page.BehaveAsDefaultValue();

            var molesWebPart = new ShimControl((Control)webPart) { PageGet = () => { return page; } };
            webPart.Inject(customerRepository, salesOrderRepository);
        }
        public void SetUp()
        {
            shimsContext = ShimsContext.Create();

            ICustomerRepository customerRepository = new InMemoryCustomerRepository();

            customerRepository.Add(new Customer {
                CustomerId = 0, Name = "Customer 1"
            });
            customerRepository.Add(new Customer {
                CustomerId = 1, Name = "Customer 2"
            });
            customerRepository.Add(new Customer {
                CustomerId = 2, Name = "Customer 3"
            });

            ISalesOrderRepository salesOrderRepository = new InMemorySalesOrderRepository();

            salesOrderRepository.Add(new SalesOrder {
                Customer = new Customer {
                    CustomerId = 0, Name = "Customer 1"
                }, SalesOrderId = 0, Lines = new List <OrderLine> {
                    new OrderLine {
                        Price = 5, Quantity = 5
                    }
                }
            });

            webPart = new SalesOrderWebPart();
            var page = new ShimPage()
            {
                IsPostBackGet = () => { return(false); }
            };

            page.BehaveAsDefaultValue();

            var molesWebPart = new ShimControl((Control)webPart)
            {
                PageGet = () => { return(page); }
            };

            webPart.Inject(customerRepository, salesOrderRepository);
        }