OK, that is the expected result. Channel.getController method is a realtime method, which means that it will only return a meaningful value when the track is being played with a sequencer. It gets the current value of the controller at the current time in the track.
Controllers are continuous, there could be many thousands of messages for a given controller in a midi track. Consider a crescendo in the music. The controller will start at a small value, and rise, maybe every 50th of a second until the highest value is achieved.
To monitor this correctly you would normally use the event listener, but Channel.GetController gets a snapshot of the value when it is called.