Skip to main content

Posts

Using callbacks with Moq to check state

Here is the scenario, I have a method that takes an object, however - nowhere in your CUT (class under test) can you publicly access this object to verify state the state of it. I run into this scenario a lot regarding view models, the view model exposes things that we need to look at and interact with as public properties but anything the user doesn’t interact with or see is private which can make testing a pain. Let’s look at an example of something we can easily test before we get to the problem. [ TestMethod ] public void SaveCommandGetsSetWhenConstructed() { //Arrange var adapterMock = new Mock < INewOrderAdapter >(); adapterMock.Setup(x => x.DeclinedBuyItNowPartNumbers) .Returns( new List < string >() { "12345" }); var vm = new PartDeclinedViewModel (eventAggregator, adapterMock.Object) { SelectedLineItems = new ObservableCollection < DeclineReasons >() { DeclineReasons .CONDITI...

Musings on using a module catalog with Prism

anyone using prism is probably familar with the bootstrapper, the documentation defines the bootstrapper as a class responsible for initialization of an application built using Prism and if you dig into the code for it you will see lots of virtual methods that you can override when setting up your application, one of those is the CreateModuleCatalog(). There are several ways to initialize your modules but using an xaml file is incredibly convenient especially if you only want certain parts of your application to load under certain conditions. Where I work we recently decided to employ this feature so that we could load a subset of the application in the warehouse and not have the sales and other modules loading up at run time, on the flip side the warehouse module doesn't load when the sales team loads the application. The great part for the developer is you don't end up with multiple code bases, your core and infrastructure is shared in one application and different people see...

Copying items to a output directory using post-build events

Certain times you are going to need to move things to some sort output directory after they are built, for whatever reason - maybe your program is looking for a list of modules that it will load when it fires up (you can do this with prism)? It's easy to do, just go to the "Properties" for your project and select "Build Events". in the box titled "Post-Build event command line" enter your xcopy command. Somthing like this. xcopy "$(TargetDir)PARTSFinderModule.dll" "$(SolutionDir)\MyProject\bin\$(PlatformName)\$(ConfigurationName)\DirectoryModules" /Y That's it.

Styling the combox box in WPF

If you want to play with the style of the combo box in WPF the easiest thing to do is use expression blend, drag a combo box control onto you project then click, "Edit Template" -> "Edit a copy"... This will take the entire default template for the combox box and put it into your XAML file. Now go to the XAML and you can grab the entire style and do whatever you like with it... I usually put things like this into a main poject under the solution, something like "shared" is a good name for the project... One thing that is important to note though is that you have to include a reference to the PresentationFramework.Aero assembly cause you will need the Microsoft.Windows.Themes namespace.

Friday night javascript notes

Uhg! A few things that are worth writing down - the kind of things you know but then forget you know when you are programming. First - The DOM is case sensitive in Firefox, not in I.E. though... So imageId3 is different than ImageId3 as far as Mozilla is concerned. O.K. that first one is like Duh! but this second point is not so much, as it turns out that if you have a variable that hasn't been assigned yet I.E. doesn't really care so much, you can try and talk to it and nothing happens - Firefox on the other hand blows up, at the least the function does. the minute you try and access that null variable Mozilla throws an error and the rest of the function won't execute. The trick is to see if there is a value assigned to it. I searched the web for a while and finally over at webdeveloper.com someone gave me this code. if(typeof imageContainer == 'undefined') There is an explanation at the original post. http://webdeveloper.com/forum/showthread.php?p=990761#post9907...

My stored procedure template

OK - It is really just a nice example that you can cut and paste and customize... You get the point though! If you use MSSQL you probably know that you can right click on the stored procedures folder and click "new stored procedure" - this gives you a fairly workable template but it uses the CREATE syntax, then you have to change that to ALTER when you make a change to the proc. This can become a real pain if several folks are trying to run this on different development databases, then run it out the production server / test server, whatever, you get the point... The template below lets you modify and run the procedure as many times as you like and wherever you like with no regard for weather or not the procedure exists. It also grants permissions for who can run this proc, you can adjust that as you please. set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================================================ -- Create date: ...