Unnecessary unit test? I have this method in my service layer 

    public ModuleResponse GetModules(ModuleRequest request)
    {
        var response = new ModuleResponse(request.RequestId);
        try
        {
            response.Modules = Mapper.ToDataTransferObjects(ModuleDao.GetModules());
            return response;
        }
        catch (Exception ex)
        {
            Log.Error(ex);
            response.Acknowledge = AcknowledgeType.Failure;
            response.Message = "An error occured.";
            return response;
        }
    }


I've written a unit test like this

    [Fact]
    public void GetModulesTest()
    {
        //Arrange            
        var mockModuleDao = Mock.Create&lt;IModuleDao&gt;();
        var mockLog = Mock.Create&lt;ILog&gt;();
        var mockAuditDao = Mock.Create&lt;IAuditDao&gt;();

        var moduleList = new List&lt;ModuleItem&gt;
        {
            new ModuleItem {Id = 100, Category = "User Accounts", Feature = "Users"},
            new ModuleItem {Id = 101, Category = "User Accounts", Feature = "Roles Permissions"}
        };

        mockModuleDao.Arrange(dao =&gt; dao.GetModules()).Returns(moduleList);

        IUserManagementService userService = new UserManagementService(mockModuleDao, mockLog, mockAuditDao);

        var request = new ModuleRequest().Prepare();

        //Act
        var actualResponse = userService.GetModules(request);

        //Assert
        Assert.Equal(AcknowledgeType.Success, actualResponse.Acknowledge);
        Assert.Equal(2, actualResponse.Modules.Count);
    }


My question is... are such methods worth testing? I have a whole other bunch of retrieve methods that just return me lists of data. 

Are there any other ways to improve the unit test in this particular example?

The first assert basically checks if the method has been executed without any error.

Is the 2nd Assert of my test redundant?
In my opinion No. There is hardly any behaviour at all. As soon you say "I have this method in my service layer" it make it much more obvious. Service layer provide communication and pretty much should orchestrate things. That's it. 

Note that Unit tests are good but have it unnecessary written they become a maintenance issue. 

Test your code which has behaviour from the customer's requirements point of view.

Typically you would have an acceptance type test or an integration test to cover service layer and other layers as well.