To make the cake
Preheat oven to 180°C (160°C fan)/350°F (320°F fan)/gas mark 4 (gas mark 3 fan). Lightly grease 2 or 3 (8-inch) cake tins and line bottom of tins with parchment paper.
Mix together soy milk and cider vinegar and let sit for approximately 10 minutes while you mix the other ingredients.
In a large bowl, mix together the flour, sugar, baking powder, baking soda, salt and cinnamon.
Add the milk mixture, rapeseed oil and vanilla to the dry ingredients. Mix with a spoon until just combined. Do not overmix.
Add the drained pineapple, mashed banana and nuts to the cake mixture. Mix just until combined.
Spoon the mixture into the cake tins and bake for approximately 30 minutes (if baking 3 tins) to 45 minutes (if baking 2 tins). Keep checking the cakes for doneness by inserting a toothpick to ensure it comes out clean.
Let the cakes cool in tins on wire racks for about 10 minutes, then remove from the tins to let cool completely before decorating.
To make the icing
With electric mixer, mix together the cream cheese, margarine, vegetable fat and vanilla until creamy. Add half the icing sugar and soy milk to the mixture and mix until well blended. Continue to add and mix the remaining icing sugar until you reach the desired consistency for the icing. Add additional milk or icing sugar if required.
This cake is best kept in the refrigerator and will keep for several days.