What should happen is that the first time he gets into the fridge I say "ut oh, looks like you are having little bit of trouble remembering the rules in our house. I'm going to let you have time in your room to think about it." And take him to his room (which would have a door with the lock on the outside, so he can not get out). He would scream and throw a fit for a minute, then I would start the time, unlock the door and tell him he can come out when the timer goes off.
The problem here is that 1. his room doesn't have a door right now, 2. I am often feeding DS3, and can't get up to do this, or 3. I get frustrated that I have to go over this with him ALL the time. I forget that he is three and that I am going to have to continually work with him. I forget that he is testing me, and when I get angry I am failing miserably!
As I sit and write this tonight, DS2 is supposed to be in bed, but keeps coming up. We keep telling him to go to bed, and are getting frustrated with him. I finally went down with him and said "if you come up again, you will not be going to playgroup tomorrow" I then walked up the stairs and thought 'oh crap, I am not supposed to warn him!' See, it is so much more effective if they don't KNOW what the consequence is going to be.
I find myself always reminding DS1 when he is supposed to be doing a chore. He gets distracted so easy, and I am constantly keeping him on task, and getting frustrated while doing it. I am so glad that now I can learn to just let it go, and allow the consequences to come. What sucks, is delivering the consequences!