Preheat the oven to 190C/375F (fan). Boil a large pan of water and cook the pasta for 1 minute less than recommended on the pack. Drain.
Whilst the pasta is cooking, heat the oil on a medium heat, in a large frying pan. Add the onion and cook for 4-5 minutes, stirring occasionally, until the onion softens.
Add the mushrooms, salt, pepper, and garlic, and cook for a further 3-4 minutes, stirring often, until the mushrooms are tender.
Add the white wine, turn up the heat to high and allow the wine to bubble for a few minutes until reduced by half, then turn the heat back down to medium.
Add the chicken stock, cream, shredded chicken, and half of the parmesan and stir together until the cheese melts.
By now the pasta should be cooked. Add the drained pasta to the pan and stir together until the pasta is coated in the creamy sauce.
Transfer the contents of the pan to a large baking dish. Sprinkle the remaining parmesan and the cheddar and mozzarella on top, then place in the oven for 20-25 minutes until the cheese is golden brown.
Remove from the oven and sprinkle with parsley before serving.