Heat the oil in a large lidded frying pan or skillet. Add the onion and cook for 5 minutes until soft.
Add the garlic, smoked paprika and cumin. Stir and cook for 1 minute until fragrant.
Add the rice and stir to coat in the oil. Pour in the chopped tomatoes and stock. Stir well.
Bring to a simmer, then cover with a tight-fitting lid. Cook on low heat for 15 minutes.
Add the drained beans and frozen sweetcorn. Stir gently, cover and cook for another 5 minutes until the rice is tender and the liquid is absorbed.
Season with salt and pepper. Scatter with fresh coriander or parsley if you have it and serve straight from the pan.