Given: I needed to unit test that a response status code had been set within a controller action.
When: I didn't particularly want to refactor due to this being existing code.
Then: After experimenting unsuccessfully with creating various HttpContext classes, I found the simplest solution to be as follows within my test method:
var request = new HttpRequest("", "http://tempuri.org/", "");
var response = new HttpResponse(TextWriter.Null);
var httpContext = new HttpContextWrapper(new HttpContext(request, response));
_myController.ControllerContext = new ControllerContext(httpContext, new RouteData(), _myController);
var result = _myController.SomeAction(...some parameters...);
Assert.AreEqual(400, response.StatusCode);
Monday, 30 April 2018
Wednesday, 24 May 2017
SQL Shortcut Comparative "And" and "Or" Operator Conditions
In SQL Server Management Studio (SSMS), the following code returns "OK", suggesting that the evaluation conditions in SQL are shortcutted (ie. as soon as a condition is met, the code doesn't evaluate any subsequent conditions):
select case when 1=2 or 2=2 or 1/0 = 2 then 'ok' else 'no' end
Had all conditions been evaluated, a "divide by zero" error would have occurred.
I've not looked into whether this is standard ANSI SQL behaviour, but thought I'd share in case it is of use or interest to others.
I've not looked into whether this is standard ANSI SQL behaviour, but thought I'd share in case it is of use or interest to others.
Thursday, 19 February 2015
Permission denied when pushing to GitHub remote repository
When I tried to push code to GitHub recently, I got the following error despite running PuTTY and loading the SSH key that was associated with my GitHub account:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
It turned out that one of my settings in Git Extensions had reverted. I went into Settings, Settings, Ssh and selected the option against PuTTY. I was then able to push successfully.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
It turned out that one of my settings in Git Extensions had reverted. I went into Settings, Settings, Ssh and selected the option against PuTTY. I was then able to push successfully.
Labels:
Git,
GitHub,
Troubleshooting
Tuesday, 3 February 2015
List All Stored Procedures Within a SQL Database and Then Grant Execute on Them
It's been too long since I last blogged.
Thought I'd dust things off with this little snippet of T-SQL to list all stored procedures that exist within a specified SQL database:
USE YourDatabaseNameHere
GO
SELECT NAME
FROM SYSOBJECTS
WHERE TYPE = 'P'
AND LEFT(NAME,2) <> 'sp'
AND LEFT(NAME,2) <> 'dt'
This can be useful if you wish to grant execute permissions on these objects to your database login. For example, the following T-SQL will literally write out the commands you need to run in order to grant such execute permissions:
SELECT 'GRANT EXECUTE ON ' + NAME + ' TO YourDatabaseLoginNameHere'
FROM SYSOBJECTS
WHERE TYPE = 'P'
AND LEFT(NAME,2) <> 'sp'
AND LEFT(NAME,2) <> 'dt'
You can take the output from the above, paste into a query window and run:
GRANT EXECUTE ON MyStoredProc TO YourDatabaseLoginNameHere
Thought I'd dust things off with this little snippet of T-SQL to list all stored procedures that exist within a specified SQL database:
USE YourDatabaseNameHere
GO
SELECT NAME
FROM SYSOBJECTS
WHERE TYPE = 'P'
AND LEFT(NAME,2) <> 'sp'
AND LEFT(NAME,2) <> 'dt'
This can be useful if you wish to grant execute permissions on these objects to your database login. For example, the following T-SQL will literally write out the commands you need to run in order to grant such execute permissions:
SELECT 'GRANT EXECUTE ON ' + NAME + ' TO YourDatabaseLoginNameHere'
FROM SYSOBJECTS
WHERE TYPE = 'P'
AND LEFT(NAME,2) <> 'sp'
AND LEFT(NAME,2) <> 'dt'
You can take the output from the above, paste into a query window and run:
GRANT EXECUTE ON MyStoredProc TO YourDatabaseLoginNameHere
GRANT EXECUTE ON AnotherStoredProc TO YourDatabaseLoginNameHere
GRANT EXECUTE ON AndAnotherStoredProc TO YourDatabaseLoginNameHere
Friday, 19 July 2013
RESTORE cannot process database 'X' because it is in use by this session
When running a restore database query, I got the above error in SQL Management Studio. This was due to having the database 'X' selected in the dropdown list of databases, as suggested by the second part of the error message, which stated "It is recommended that the master database be used when performing this operation."
I changed the dropdown to another database 'Y' and was able to re-run the query without error.
I changed the dropdown to another database 'Y' and was able to re-run the query without error.
Labels:
SQL,
Troubleshooting
Tuesday, 9 July 2013
Missing Context Menu on Item in Team Development for Sitecore (TDS)
I recently had a problem in which I tried to "get" items from Sitecore using TDS. The item I was trying to get had several immediate children; however, the get only fetched the top item. When I right-clicked it to try to delete, no context menu appeared. I checked the file system and found that the .item file did not physically exist, so I reloaded the Visual Studio solution. This removed the item from the Solution Explorer, but did not explain what had gone wrong.
I eventually discovered the issue was due to having an alias item of the same name at the same level in Sitecore. Once I'd renamed the alias, I could correctly get the item and all of its children.
I eventually discovered the issue was due to having an alias item of the same name at the same level in Sitecore. Once I'd renamed the alias, I could correctly get the item and all of its children.
Labels:
Sitecore,
TDS,
Troubleshooting
Thursday, 24 May 2012
Using the jQuery Equivalent of Body OnLoad
Prior to jQuery, the way to get JavaScript to fire on loading a page was to add an onload attribute to the body HTML tag:
<body onload="mycode();">
In jQuery, this can be replaced by:
<script type="text/javascript">$(mycode);</script>
The important thing is not to include the method brackets. $(mycode()); will not work.
<body onload="mycode();">
In jQuery, this can be replaced by:
<script type="text/javascript">$(mycode);</script>
The important thing is not to include the method brackets. $(mycode()); will not work.
Labels:
HTML,
JavaScript,
jQuery
Subscribe to:
Posts (Atom)