Updating position and texture of an object in Update(GameTime gameTime)

I am trying to learn MonoGame by building a simple 2D wolf catch eggs game here is my Game class

    using System;
    using System.Collections.Generic;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;
    using Microsoft.Xna.Framework.Storage;
    using Microsoft.Xna.Framework.GamerServices;
    using GameName1.GameObjects;

    namespace GameName1
    {
        /// <summary>
        /// This is the main type for your game
        /// </summary>
        public class Game1 : Game
        {
            GraphicsDeviceManager graphics;
            SpriteBatch spriteBatch;


            private Texture2D background;
          
            private Texture2D wolfLeftUp;
            private Texture2D wolfLeftDown;
            private Texture2D wolfRightUp;
            private Texture2D wolfRightDown;

            private Wolf wolf;

            public Game1()
                : base()
            {
                graphics = new GraphicsDeviceManager(this);
                Content.RootDirectory = "Content";
            }

            /// <summary>
            /// Allows the game to perform any initialization it needs to before starting to run.
            /// This is where it can query for any required services and load any non-graphic
            /// related content.  Calling base.Initialize will enumerate through any components
            /// and initialize them as well.
            /// </summary>
            protected override void Initialize()
            {
                // TODO: Add your initialization logic here
                IsMouseVisible = true;
                base.Initialize();
            }

            /// <summary>
            /// LoadContent will be called once per game and is the place to load
            /// all of your content.
            /// </summary>
            protected override void LoadContent()
            {
                // Create a new SpriteBatch, which can be used to draw textures.
                spriteBatch = new SpriteBatch(GraphicsDevice);
                background = Content.Load<Texture2D>("background");

                wolfLeftUp = Content.Load<Texture2D>("wolflleftup");

                wolfLeftDown = Content.Load<Texture2D>("wolflleftdown");

                wolfRightUp = Content.Load<Texture2D>("wolflrightup");

                wolfRightDown = Content.Load<Texture2D>("wolflleftup");

               

                // TODO: use this.Content to load your game content here
            }

            /// <summary>
            /// UnloadContent will be called once per game and is the place to unload
            /// all content.
            /// </summary>
            protected override void UnloadContent()
            {
                // TODO: Unload any non ContentManager content here
            }

            /// <summary>
            /// Allows the game to run logic such as updating the world,
            /// checking for collisions, gathering input, and playing audio.
            /// </summary>
            /// <param name="gameTime">Provides a snapshot of timing values.</param>
            protected override void Update(GameTime gameTime)
            {
                if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
                    Exit();

                 if (Keyboard.GetState().IsKeyDown(Keys.Right))
                 {
                    if (wolf.GetPosition() == WolfPositions.LeftUp)
                    {
                        
                       wolf.Update(gameTime, wolfLeftUp, new Rectangle(20, 3, 600, 500), WolfPositions.RightUp);
                       var pos = wolf.GetPosition();
                       
                    }
                    if (wolf.GetPosition() == WolfPositions.LeftDown)
                    {
                       
                    }
                }
                // TODO: Add your update logic here

                base.Update(gameTime);
            }

            /// <summary>
            /// This is called when the game should draw itself.
            /// </summary>
            /// <param name="gameTime">Provides a snapshot of timing values.</param>
            protected override void Draw(GameTime gameTime)
            {
                GraphicsDevice.Clear(Color.Gold);
                
                // TODO: Add your drawing code here

                spriteBatch.Begin();
                Rectangle destinationRectangle = new Rectangle(0, 0, 800, 500);
                spriteBatch.Draw(background, destinationRectangle, Color.White);

                
                wolf = new Wolf(wolfLeftDown, new Rectangle(20, 3, 600, 500), Color.White, WolfPositions.LeftUp);
                wolf.Draw(spriteBatch);

                spriteBatch.End();

                base.Draw(gameTime);
            }
        }
    }

and my wolf class

using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.GamerServices;

namespace GameName1.GameObjects
{
    public class Wolf  
    {
        private WolfPositions wolfPosition;
        private  Texture2D content;
        private  Rectangle position;
        private  Color color;


        public Wolf(Texture2D content, Rectangle position, Color color, WolfPositions wolfPosition)
        {
            this.color = color;
            this.content = content;
            this.position = position;
            this.wolfPosition = wolfPosition;
        }

        public WolfPositions GetPosition()
        {
            return wolfPosition;
        }

        public virtual void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(content, position, color);
        }


        public virtual void Update(GameTime gameTime, Texture2D content, Rectangle position, WolfPositions wolfPosition)
        {
            this.content=content;
            this.position=position;
            this.wolfPosition = wolfPosition;
           

        }
    }
}

I am not sure what am I doing wrong but every time i am calling the

wolf.Update(gameTime, wolfLeftUp, new Rectangle(20, 3, 600, 500), WolfPositions.RightUp);

I do not see the position or Texture being updated on the screen

Any help is strongly appreciated.

You are instancing a new Wolf class and replacing the reference held by the wolf variable with this new instantiation every frame in the draw loop. This will cause any logic you done with the reference held by wolf variable in the update loop moot. Also since Wolf is a class, calling the above code in the draw loop is not advised. Instantiating classes should be done only when needed; preferably once if possible, but certainly not 60~ish times a second.

Thank you, I see my mistake, still learning, Thanks again.