The correct option is D when
The action 'Sonu became happy' after another action 'he saw his uncle with lot of chocolates'. So, the conjunction that connects these two must express time.
Option D: 'When' as a time-conjunction means 'at or during the time that'. It agrees to the sentence and completes it in meaning. Hence option D is correct.
Option A: 'And' merely connects two statements that do not affect each other, whereas here the connection is time.
Option B: 'But' refers to contrast. It does not relate to this sentence.
Option C: 'Since' refers to time and reason.
When it refers to time, it describes an action over a period of time. There is not time period mentioned here.
As a conjunction for reason, it does not form a complete sentence.
Hence options A, B and C are incorrect.