Time keeping

I’m developing a stored procedure that will present, for every employee, the time he/she worked, a time keeper.

Because the HR department, presented a lot of rules, complicating very much the logic behind it, I started to develop also some testes with tSQLt.

Here is one test :

ALTER PROCEDURE [TestTimeKeeping].[Test Entrace Without Exit Then Make it 8h]
 AS
 BEGIN
     SET XACT_ABORT ON;
     SET NOCOUNT ON;
     IF OBJECT_ID('actual') IS NOT NULL DROP TABLE actual;
     IF OBJECT_ID('expected') IS NOT NULL DROP TABLE expected;
     
     EXEC tSQLt.FakeTable 'dbo', 'Events';
     
     BEGIN TRY
         INSERT INTO dbo.Events ( UserNo, DT, Location)
         VALUES ( 1, cast('20191111 08:00:00' as datetime), 39);
    END TRY
    BEGIN CATCH
        SELECT ERROR_MESSAGE();
    END CATCH

    CREATE TABLE Actual (
         Department varchar(50),
         Marca varchar(13),
         Employee varchar(63),
         Occupation varchar(50),
         IntrareDT datetime,
         TotalHours time(0) null,
         NormalHours time(0) null,
         SDHours time(0) null,
         NightHours time(0) null
    );

      INSERT INTO Actual (Department,Marca,Employee, Occupation, IntrareDT, TotalHours, NormalHours,SDHours,NightHours)
     EXEC dbo.Company_Presence_GET @Departaments  = NULL, @dataStart='20191101', @dataEnd = '20191125', @Marca  = NULL;


     CREATE TABLE expected (
         Department varchar(50),
         Marca varchar(13),
         Employee varchar(63),
         Occupation varchar(50),
         IntrareDT datetime,
         TotalHours time(0) null,
         NormalHours time(0) null,
         SDHours time(0) null,
         NightHours time(0) null
     );

    INSERT INTO expected (Department, Marca, Employee, Occupation, IntrareDT,TotalHours,NormalHours,SDHours,NightHours)
    VALUES('DEPARTAMENT IT','3313','First Last Name','Ocup IT','20191111 00:00:00','08:00:00','08:00:00',NULL,NULL);

 /*select * from Actual;*/
 EXEC tSQLt.AssertEqualsTable 'expected', 'actual';
END;