public void Search_Device_Throws_Exception()
        {
            using (ShimsContext.Create())
            {
                //Arrange
                var myContext = new SIMPLTestContext();
                var fakeUserDto = myContext.GetFakeUserDtoObject();
                ShimCurrentUser.AsUserDto = () => fakeUserDto;

                //search criteria
                var equipmentSearchViewModel = new EquipmentSearchViewModel
                {
                    LocationID = "1423153155101",
                };

                var expectedResult = new
                {
                    status = "error",
                    errorMessage = "Provisoning Service is down"

                }.ToJSON();

                ShimRosettianClient.AllInstances.SearchEquipmentSearchFieldsDtoUserDto = delegate
                {
                   throw new Exception("Provisoning Service is down");
                };

                var actionResult = SearchControllerForTests.SearchDevice(equipmentSearchViewModel) as JsonResult;
                Assert.IsNotNull(actionResult, "SearchDevice returned null");
                var actualJsonResult = actionResult.Data.ToJSON();
                Assert.AreEqual(expectedResult, actualJsonResult);
            }
        }
        public void Search_Device_By_UnitAddress()
        {
            using (ShimsContext.Create())
            {
                //Arrange
                var myContext = new SIMPLTestContext();
                var fakeUserDto = myContext.GetFakeUserDtoObject();
                ShimCurrentUser.AsUserDto = () => fakeUserDto;

                //search criteria
                var equipmentSearchViewModel = new EquipmentSearchViewModel
                {
                    UnitAddress = "0000043667628067",
                };

                //expected search results
                var expectedSearchResults = new[]
                {
                    new
                    {
                        ID = null as object,
                        Manufacturer = null as object,
                        Model = null as object,
                        UnitAddress = equipmentSearchViewModel.UnitAddress,
                        Status = null as object,
                        LocationID = null as object,
                        AssociatedSubID = null as object,
                    }
                };

                var expectedResult = new
                {
                    status = "valid",
                    searchResults = expectedSearchResults

                }.ToJSON();

                var fakeEquipmentDto = new EquipmentDto()
                {
                    UnitAddress = equipmentSearchViewModel.UnitAddress
                };

                var fakeEquipmentDtoList = new List<EquipmentDto>()
                {
                    fakeEquipmentDto
                };

                ShimRosettianClient.AllInstances.SearchEquipmentSearchFieldsDtoUserDto = delegate
                {
                    return fakeEquipmentDtoList;
                };

                var actionResult = SearchControllerForTests.SearchDevice(equipmentSearchViewModel) as JsonResult;
                Assert.IsNotNull(actionResult, "SearchDevice returned null");
                var actualJsonResult = actionResult.Data.ToJSON();
                Assert.AreEqual(expectedResult, actualJsonResult);
            }
        }